これは本当に独学のためです。しかし、COM / INTEROP DLLを使用せずに、Excelシートから読み取る簡単な方法はありますか?マイクロソフトがExcelシートからセルごとに(そして単語ごとに)値を読みやすくする他の方法はありますWord
か?
5 に答える
ExcelとWordの相互運用APIに代わるものがあるかどうかを尋ねる質問があることは知っていますが、これを読んでいると、OPは、Excelシートからセルを読み取ったり、 Word文書。
これをWordに追加したいのですが、ドキュメント内の各単語の読み取りは、ほんの数行で実行できます。
foreach (var word in myDocument.Words)
{
Console.WriteLine(word);
}
...これがもっと簡単にできるとは思わないので、それが本当にOPが望んでいる代替APIなのか、それとも代わりにいくつかのWord相互運用サンプルなのか疑問に思いました。(少なくともWord相互運用APIを使用する場合)
たとえば、ODBCを使用してワークシートを読み取る場合は、この簡単な例に従ってください。これは、Excelから読み取るためのさまざまな方法の1つにすぎません。
OleDbCommand myCommand = new OleDbCommand("Select * from [Sheet1$];");
OleDbConnection myConnection = new OleDbConnection(connectionString);
myConnection.Open();
myCommand.Connection = myConnection;
OleDbDataReader myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
// it can read upto 5 columns means A to E. In your case if the requirement is different then change the loop limits a/c to it.
//Change the Response.Write blow to Console.WriteLine() if you are wanting to test this in a Console application vs a web app.
for (int i = 0; i < 5; i++)
{
Response.Write(myReaderIdea.ToString() + " ");
}
Response.Write("<br>");
}
myConnection.Close();
//make sure to Dispose of the Reader object as well
((IDisposable)myReaderIdea).Dispose();
新しい形式(xlmx、docx)については、OpenXMLを使用できると思います。
WordとExcelの場合、優れたサードパーティライブラリはAspose http://www.aspose.com/.net/total-component.aspxです。Asposeは、Wordを操作し、ドキュメントを優れたものにするための多数のオプションを備えた非常に使いやすいAPIを提供します。ドキュメントも良いです。それは、ライセンス料が法外なものになるかもしれないと言った。
Wordのオープンソースの代替手段が必要な場合は、DocXhttp : //docx.codeplex.com/があります。DocXはOpenXMLを介した優れたAPIを提供します。
https://github.com/organizations/Word-DocX:非公式のブランチでDocXにいくつかの主要な拡張を行いました。
拡張機能のリストには、シングルレベルリストとマルチレベルリストのサポート、フォントフォーマットの読み取りのサポート、セクション/セクションブレークなどが含まれます。
ODBCデータソース用のExcelドライバーがあります。コントロールパネルからアクセスできます。そこで構成するか、Excelドライバーで接続文字列を使用すると、ADOAPIを介してアクセスできます。