想用OLE DB实现从EXCEL文件读取数据到程序的DATATABLE中,然后用datagrid修改,随后保存修改到DATATABLE中,最后保存回EXCEL文件(指定路径,方便下一次程序读取)中。
1.把datatable保存到EXCEL中去的代码不会写,请问大家指点!
2.用OLE DB读取EXCEL文件已经实现,代码如下:
Private Sub btn_LoadExcel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_LoadExcel.Click
Dim path, EXCEL_FileName As String
Dim conn_string As String '连接EXCEL的字符串
Me.OpenFileDialog1.Title = "选择Excel文件"
If Me.OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
path = System.IO.Path.GetFullPath(OpenFileDialog1.FileName) '获取文件的完整路径
EXCEL_FileName = System.IO.Path.GetFileName(OpenFileDialog1.FileName)
EXCEL_FileName = Microsoft.VisualBasic.Left(EXCEL_FileName.ToUpper, EXCEL_FileName.Length - 5) '获取EXCEL文件名(不含扩展名)
conn_string = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & path & ";Extended Properties='Excel 12.0;HDR=YES';" '定义连接字符串
Dim EXCEL_conn As OleDbConnection = New OleDb.OleDbConnection '定义连接对象
EXCEL_conn.ConnectionString = conn_string '把连接字符串赋值给连接对象
EXCEL_conn.Open() '打开连接
Dim command_loadExcel As String = "select * from [Sheet1$]" '定义OleDbDataAdapter中用的SELECT语句字符串
Dim excel_adapter As New OleDbDataAdapter(command_loadExcel, EXCEL_conn) '定义OleDbDataAdapter对象
'定义DATAtable
excel_adapter.Fill(Excel_DataTable) '用OleDbDataAdapter填充DATAtable
MessageBox.Show("导入EXCEL到DataTable成功!!!")
DataGridView1.DataSource = Excel_DataTable '用DataGridView显示DataTable数据
EXCEL_conn.Close()
End If
End Sub
------解决思路----------------------
建议用NPOI组件处理
------解决思路----------------------
两个方法
1、可以用vb.net调用excel对文件进行任何操作,网上有很多代码,楼主很容易找到,由于.net的机制,内存非常不容易控制,excel可以调用但是退不出去。vb6在这方面倒是好用的多。
2、用控件。比如component one组件里面就有一个c1excel控件,很好用。NPOI也是个不错的东东。
我觉得oledb操作excel并不是他的强项,当然不好用或者用不了,既然如此何必强求?