0

900 のスプレッドシートからの入力データを、リレーショナル データベース (XML またはフラット ファイル) へのアップロードに適した形式に変換する適切な方法が必要です。スプレッドシートは複数シート、複数行の Excel 2007 で、それぞれが 7 つのフォームで構成されています (単純なグリッドではありません)。取得する数式データはなく、テキスト、日付、整数データのみです。

900 のスプレッドシートはすべて同じ形式です。ある種のスクリプト化されたソリューションが必要になります。

私はこれを Excel マクロで実行できるはずだと思っています (そして、洗練されたスクリプト可能なエディターでも実行できると思います) か、おそらく SSIS を使用します。

それがあなたの仕事である場合、あなたがこれにどのようにアプローチするか誰か教えてもらえますか?

これを行うための良い方法に関する技術情報へのリンクを誰でも提供できますか?

Excel マクロは初めてですが、プログラミング言語やスクリプト言語、SQL などには慣れています。

なんで?暫定的な解決策としてスプレッドシート フォームを使用しており、データをデータベースに取り込む必要があります。

4

1 に答える 1

1

おそらく、プレーン テキスト ファイルにデータを書き出す必要があるでしょう。FileSystemObject の CreateTextFile メソッドを使用します。ドキュメントはこちら:

http://msdn.microsoft.com/en-us/library/aa265018(v=vs.60).aspx

ワークシートを反復処理し、データを取得してから WriteLine メソッドを使用する方法の例が Web 上に多数あります。

Sub ExampleTextFile()
    Dim fso as Object
    Dim oFile as Object
    Dim fullExport as String

    'Script that will capture data from worksheet belongs here _
    ' use the fullExport string variable to hold this data, for now we will _
    ' just create a dummy string for illustration purposes

    fullExport = "Example string contents that will be inserted in to my text file!"

    Set fso = CreateObject("Scripting.FileSystemObject")

   'In the next line, replace "C:\filename.txt" with the specified file you want to create

    set oFile = fso.CreateTextFile("C:\filename.txt", Overwrite:=True, unicode:=True)  

    oFile.WriteLine(fullExport) '<-- inserts the captured string to your new TXT file
    oFile.Close

    Set fso = Nothing
    Set oFile = Nothing

End Sub

文字エンコーディングの問題がある場合 (最近、UTF16LE エンコーディングと UTF8 エンコーディングの問題に遭遇しました。ADODB.Stream オブジェクトを使用する必要がありますが、それには別の方法でファイルを書き込む必要があります。

于 2013-02-13T17:59:21.370 に答える