vb.net スクリプトを使用して、*xls ファイルのデータを読み取り、スタッフ ID に基づいてデータを取得して *.dbf ファイルに更新することは可能ですか? はいの場合、最初に xls を dbf に変換してから更新する必要がありますか、それとも xls を読み取って変換せずに dbf ファイルに更新できますか?
1 に答える
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
データベースへの書き込みについては、最近他の人に提供した例を次に示します。