0

vb.net スクリプトを使用して、*xls ファイルのデータを読み取り、スタッフ ID に基づいてデータを取得して *.dbf ファイルに更新することは可能ですか? はいの場合、最初に xls を dbf に変換してから更新する必要がありますか、それとも xls を読み取って変換せずに dbf ファイルに更新できますか?

4

1 に答える 1

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

データベースへの書き込みについては、最近他の人に提供した例を次に示します。

于 2013-03-18T04:59:14.700 に答える