1

doc/docxファイルを解析できるアプリケーションを作成したいこのファイルの構造を以下に示します。

par-000.01 - some content
par-000.21 - some content
par-000.31 - some content
par-001.32 - some content

コンテンツは複数行であり、通常ではない可能性があります。私がやりたいのは、これらのコンテンツをデータベースに入れることです。つまり、最初のレコード、つまり列とテキスト列に入れますpar-000.01。これを手動で実行できない理由は、約15のドキュメントがあり、各ドキュメントにデータベースに入れたい段落が約10ページ含まれているためです。ドキュメントファイル全体を解析する方法についての記事が見つからないため、適切な正規表現を記述すれば可能になると思います。誰かが私を記事にリダイレクトして、私がやりたいことをどのように行うことができるか-私に合ったものが見つからないので、おそらく間違ったキーワードを使用しています。codesome content

4

2 に答える 2

3

妥当な量のデータがあると言うので、15ドキュメント*10ページ/ドキュメント*〜100行/ページ= 15000行これはワードドキュメントで管理可能であり、これが繰り返しデータフィードであるとは言わなかった、つまりこれは1回限りの変換では、グローバル検索と置換をサポートするエディターを使用して、カンマ区切り変数形式に変換します。私が知っているほとんどのDBはCSVファイルをロードできます。

あなたがC#アプリを要求したことは知っていますが、それはあなたの問題に基づいて時間と労力を費やすのはやり過ぎです

それで

  1. 検索を使用してMSWordに変換'<start of line>''<start of line>"'
    、検索を置換し
    ます:^ p
    置換:^& "

  2. MS Word用にFindに変換' - ''","'
    、findを置き換え
    ます:'-'注:目盛りを追加しないでください。
    交換: "、"

  3. 検索を使用してMSWordに変換'<end of line>''"<end of line>'
    、検索を置換し
    ます:^ p
    replace: "^&

  4. 最初の行の開始と最後の行の終了を手動で修正します。

あなたが得る必要があります

「par-000.01」、「一部のコンテンツ」
「par-000.21」、「一部のコンテンツ」

次に、CSVロードを使用してそれをDBにロードします。

また、C#でこれを行うことを主張する場合は、テキストをすべてのWordタグなしで* .txtファイルとして保存でき、C#アプリで分解する方がはるかに簡単であることに注意してください。Wordタグに固執するのではなく、創造的な思考で問題を回避するだけです。

于 2013-03-12T21:14:27.677 に答える
0

GroupDocs.Parser for .NET APIを使用して、C#でのWord文書(.docまたは.docx)の解析を自動化できます。テキストは、ドキュメントから1行ずつまたは全体として抽出できます。これがあなたがそれをする方法です。

// extracting all the text 
WordsTextExtractor extractor = new WordsTextExtractor("sample.docx");
Console.Write(extractor.ExtractAll());

// OR

// Extract text line by line
string line = extractor.ExtractLine();

// If the line is null, then the end of the file is reached
while (line != null)
{
      // Print a line to the console
      Console.Write(line);
      // Extract another line
      line = extractor.ExtractLine();
}

開示:私はGroupDocsで開発者エバンジェリストとして働いています。

于 2019-09-19T07:13:36.530 に答える