Word ファイルからデータベースにデータを抽出/スクレイピングする方法を探しています。当社の企業手続きには、クライアントとの会議の議事録が MS Word ファイルで文書化されていますが、これは主に歴史と惰性によるものです。
これらの会議議事録からアクション アイテムをデータベースに取得して、Web インターフェイスからアクセスし、それらをタスクに変換し、完了時に更新できるようにしたいと考えています。
これを行う最良の方法は次のとおりです。
- Word内からVBAマクロでCSVを作成してからDBにアップロードしますか?
- DB に接続する Word の VBA マクロ (VBA から MySQL に接続するにはどうすればよいですか?)
- win32com 経由の Python スクリプトを DB にアップロードしますか?
WebインターフェイスはDjangoで構築されているため、最後のものは私にとって魅力的ですが、win32comを使用したことも、PythonからWordをスクリプト化しようとしたこともありません.
編集: Word オブジェクト モデルを扱うのが少し簡単になるので、VBA でテキストを抽出し始めました。私は問題を抱えています - すべてのテキストはテーブルにあり、必要なセルから文字列を引き出すと、各文字列の最後に奇妙な小さなボックス文字が表示されます。私のコードは次のようになります:
sFile = "D:\temp\output.txt"
fnum = FreeFile
Open sFile For Output As #fnum
num_rows = Application.ActiveDocument.Tables(2).Rows.Count
For n = 1 To num_rows
Descr = Application.ActiveDocument.Tables(2).Cell(n, 2).Range.Text
Assign = Application.ActiveDocument.Tables(2).Cell(n, 3).Range.Text
Target = Application.ActiveDocument.Tables(2).Cell(n, 4).Range.Text
If Target = "" Then
ExportText = ""
Else
ExportText = Descr & Chr(44) & Assign & Chr(44) & _
Target & Chr(13) & Chr(10)
Print #fnum, ExportText
End If
Next n
Close #fnum
小さなコントロール文字ボックスの調子はどうですか? Word から何らかの文字コードが渡されますか?