このトピックが議論されていることは知っていますが、いくつかの違いがあると思います。Excel にコピーしたいオブジェクトのリストがあります。可能であれば、Excel からスプレッドシートの外観もフォーマットする必要があります。これは、コードからスプレッドシートを作成できるようにする、ある種の Excel オートメーション ライブラリであると言われています。このようにして、そのドキュメントを作成し、後で開くことができるはずです。そのことについて何か考えはありますか?ありがとう!
3 に答える
Excel の高度な機能を使用しない典型的な Excel ドキュメントを作成する場合は、NPOI http://npoi.codeplex.com/またはhttp://code.google.com/p/npoi/のようなライブラリが適切にレンダリングされます。またはExcelLibraryと呼ばれる別のもの。私は個人的に NPOI ライブラリを非常に簡単に使用しています。サーバー側のオフィス オートメーションには既知の複雑性/問題があります: http://support.microsoft.com/kb/257757。NPOI は、xls (2007 年以前の Excel バージョン) ファイルの作成に適しています。xslx (2007 年以降の Excel バージョン) ファイルを大量に作成することに満足している場合は、OpenXML を使用してください。これは、xslx ドキュメントに必要なほとんどすべての機能をサポートできます。
データをC#からExcelにエクスポートできます。たとえば、リストビューからExcelドキュメントを作成して開く必要がある場合は、エクスポート元のオブジェクトに関する詳細情報をお知らせください。
まず、プロジェクトへの参照としてMicrosoft.Office.Interop.Excelを追加し、次のアセンブリをコードに追加する必要があります。using Excel = Microsoft.Office.Interop.Excel;
//This would convert the listview1 content to Excel document and create the file in the given path
private void CreateExcelFromListview()
{
ListViewExport.ListViewToCsv(listView1, "C:\\test.csv", true);
OpenInExcel("C:\\test.csv");
}
//This would open the document on screen
public void OpenInExcel(string strFileName)
{
try
{
new Excel.Application {Visible = true}.Workbooks.Open(strFileName);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
これまでに提案された OpenXML やその他のライブラリに満足できない場合は、Aspose.Cellsを参照してください。私はそれを2つの異なるプロジェクトで問題なく効果的に使用しました(色の書式設定の癖がいくつかありましたが、回避できました)。
Excel ファイル (すべてのバージョン) の読み取りとビルド、セルとヒープでの数式の宣言が可能で、エンド ワークステーションで Excel を必要としません。
しかし、それはあなたが述べたニーズに対してはやり過ぎかもしれません.999ドルからと安くはなく、開発と展開の範囲が広がれば広がるほど、急速に高価になります.