私はC#を使用してワードドキュメントを読み込もうとしています。私はすべてのテキストを取得することができますが、私は行をとでリストに格納し、gridviewにバインドすることができるようにしたいと思います。現在、私のコードは、すべてのテキスト(必要に応じて行単位ではありません)で1つの項目のリストを返します。私はファイルを読むためにMicrosoft.Office.Interop.Wordライブラリを使用しています。以下は現在までのコードです:ワードドキュメントから行ごとに読み取る
答えて
私は解決策を見つけたhere。次のように
最終的なコードは次のとおりです。
Application word = new Application();
Document doc = new Document();
object fileName = path;
// Define an object to pass to the API for missing parameters
object missing = System.Type.Missing;
doc = word.Documents.Open(ref fileName,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing);
String read = string.Empty;
List<string> data = new List<string>();
for (int i = 0; i < doc.Paragraphs.Count; i++)
{
string temp = doc.Paragraphs[i + 1].Range.Text.Trim();
if (temp != string.Empty)
data.Add(temp);
}
((_Document)doc).Close();
((_Application)word).Quit();
GridView1.DataSource = data;
GridView1.DataBind();
@ openメソッドのコードでは、そのパスが有効ではなく、一部の 'COMExceptionが処理されませんでした'と表示されます。 –
ASP.NETや他のサーバーテクノロジからOffice Interopを使用することは恐ろしい考えです。これらのAPIは、デスクトップアプリケーション(オフィスアプリケーションのスイート)を自動化するために作成されました。サーバーアプリケーションはさまざまな点で異なるため、Office Interopを使用することは非常に悪い考えです。 Microsoftによってもサポートされておらず、Officeライセンスに違反する可能性があります。 [Officeのサーバー側の自動化に関する考慮事項](http://support.microsoft.com/kb/257757) –
上記のコードは正しいですが、それはあまりにも遅いです。 私はコードを改良しました。これは上記のコードよりはるかに高速です。
List<string> data = new List<string>();
Application app = new Application();
Document doc = app.Documents.Open(ref readFromPath);
foreach (Paragraph objParagraph in doc.Paragraphs)
data.Add(objParagraph.Range.Text.Trim());
((_Document)doc).Close();
((_Application)app).Quit();
この場合はいかがですか。文書からすべての言葉を入手して、あなたのために良いものがあればそれを分けて分割します。リストに入る
List<string> lines = doc.Content.Text.Split('\n').ToList();
\ r \ aでも、\ rは行いません。\ n – thang
- 1. BinaryReaderで行ごとに読み取る
- 2. ブロックを大行列からブロックごとに読み取る
- 3. ListBoxから行ごとに読み取る
- 4. 関数内のパラメータファイルから行ごとに読み取る
- 5. テキストファイルから変数を行ごとに読み取る
- 6. 特定の行から始まる文字をファイルごとに読み取る
- 7. SQL Server 2000の行ごとに行を読み取る
- 8. Liferay:APIごとにDLFolderからサブフォルダを読み取る方法は?
- 9. ラズベリーパイから10分ごとに温度を読み取る
- 10. パスから行ごとにHashMapに読み込む方法
- 11. 行ごとにSQLテーブル内のイメージを読み取る
- 12. php pthreads行ごとにファイルを読み取る
- 13. 行ごとにtxtファイルを読み取る
- 14. Javaの形式でファイル(ワードドキュメント、Excel)からデータを読み取る方法は?
- 15. 3秒ごとにリストボックスから行を読み込みますか?
- 16. ログファイルから行をすばやく見つけ、後方に検索し、行ごとに読み取る
- 17. ファイルからの読み込みC++(行ごとに - 混合変数)
- 18. Javaでファイルから行ごとに入力を読み取るにはどうすればよいですか?</p> <p>ファイルから行ごとにJavaで入力を読み取るにはどうしたらよいですか?
- 19. Cで500ミリ秒ごとにExcelファイルからデータを読み取る#
- 20. C - ファイルから行を読み取る
- 21. ファイルから行を読み取るジェネレータ
- 22. 行ごとにtxtファイルを読み取ることができません
- 23. 処理中に行ごとにシリアル回線を読み込み
- 24. バッチスクリプトを使用して5行目ごとに読み込み
- 25. 行ごとに読み込み、別のファイルシェルスクリプトで書き込む
- 26. 行ごとにtxtを読み取り、C++でコンマで区切る
- 27. パフォーマンス - C言語で行ごとに巨大なFASTAファイルを読み取る
- 28. vbscriptを使ってテキストファイルから20行ごとに読み込む方法は?
- 29. pythonファイルの読み込み、行ごとの書き込み
- 30. 行からfloatを読み取るとArrayIndexOutOfBoundsExceptionが発生する
これは、上記のコードのすべてですか?今週末には、単語ファイルを読み込んで二重引用符間のコードをすべて取り出し、変数 "A"を挿入するプロジェクトを開始する予定です。次に、コンマの後ろの部分を "A"と置き換えなければなりません。B.彼のコードに関するいくつかの統計をしたい作家のためです。私はすべての人に見せるために自分のコードを入れます。特別な輸入品はありますか? –
DocX http://docx.codeplex.comのような軽量ライブラリを使用します。 – Hamdi
@Hamdi私はそれについて知りませんでした。私は試してみましたが、Interopとは対照的に使用するのは簡単です。もう一度ありがとう。 –