我想问一下,是否可以读取* xls文件中的数据,然后根据使用vb.net脚本的人员ID获取数据并更新到* .dbf文件?如果是的话,我是否需要先将xls转换为dbf然后进行更新,或者只是读取xls并更新到dbf文件而不进行转换?
答案 0 :(得分:0)
您可以使用COM读取xls文件,然后使用从Excel中读取的数据更新数据库,无需转换任何内容。
说将excel数据转换为访问数据库并使用查询从那里更新数据可能更简单。这取决于您的数据的复杂程度以及执行此任务的频率。
顺便说一下,VB.NET不是一种脚本语言,它是一种预编译语言。我假设通过说“脚本”你正在考虑vba?你想要做的事情也可以在vba中完成......但是...
更新:
以下是我认为你应该如何处理的一些细节。您可以谷歌每个步骤所需的所有东西。
从Excel中读取数据:
如果可以的话,你应该真正避免一大堆工作并将数据导出到csv格式文件,并使用StreamReader
读取它。
如果您确实需要直接从Excel中读取它,则需要使用COM自动化路径,并且应该查看使用Microsoft.Office.Interop.Excel
命名空间。它与通过vba自动化Excel非常相似,所以如果你熟悉它,它应该相对容易。
将数据写入数据库:
这部分非常简单。使用System.Data.OleDB
命名空间创建与数据库的连接,然后使用正确的查询生成OleDBCommand
以插入数据,并且您已完成操作。如果您有一个复杂的数据库并想要操纵大量数据,您应该真正了解调整LinqToSQL
框架以使用访问权限或如何使用IQToolkit
。
我希望这会有所帮助。
更新2:
记得几个星期前我写了一个将数据写入Excel的方法。它与读取数据不同,但它应该非常相似......事实上,读取数据应该更简单。看看这是否有助于您入门:
您需要导入Microsoft.Office.Interop.Excel
才能使其正常工作
Private Function ExportToExcelFile(ByVal FileName As String) As Boolean
With New Excel.Application
With .Workbooks.Add()
For Each sheet As Worksheet In .Worksheets
If sheet.Index > 1 Then
Call sheet.Delete()
End If
Next
With CType(.Worksheets(1), Worksheet).Range("A1")
' Do stuff with the cells in you spreadsheet here
End With
Call .SaveAs(FileName)
End With
Call .Quit()
End With
End Function
用于将数据写入我最近提供给其他人的数据库here is an example。