2012-01-20 8 views
2

MicrosoftのOpenXML SDKでは、範囲を使用してExcelにデータセットから挿入する方法はありますか?Excelの範囲

以前は、Excel API(Interop Assemblies)を使用していました。さて、少なくともサンプルを試して読んで、私が見つけた唯一の方法は、ループを使って各行とセルを作成することです。

私はこれをやっているサードパーティ製のツールをいくつか見てきましたが、私はそれを箱から出したいと思います。ありがとう。

+0

サードパーティのツールを使用すると何が問題になりますか?彼らはあなたの仕事をはるかに簡単にする傾向があります... – Nuffin

答えて

0

interopの使用について忘れてしまった場合、Excelをローカルにインストールする必要があります。私が今までエクセルで使用している最高のサードパーティ製のツールはGembox Spreedsheetあり、それは無料です:

http://www.gemboxsoftware.com/

サイトでサポート]タブでソフトウェアを使用する方法の完全な記事があります。ここでは、データセットからのデータをExcelに挿入するのがいかに簡単かの例です:

// Create new ExcelFile. 
ExcelFile ef2 = new ExcelFile(); 

// Imports all the tables from DataSet to new file. 
foreach (DataTable dataTable in dataSet.Tables) 
{ 
    // Add new worksheet to the file. 
    ExcelWorksheet ws = ef2.Worksheets.Add(dataTable.TableName); 

    // Change the value of the first cell in the DataTable. 
    dataTable.Rows[0][0] = "This is new file!"; 

    // Insert the data from DataTable to the worksheet starting at cell "A1". 
    ws.InsertDataTable(dataTable, "A1", true); 
} 

// Save the file to XLS format. 
ef2.SaveXls("DataSet.xls"); 

あなたが読んで、このようなOpenXMLの付いたファイルに書き込むことができます。

ExcelFile ef = new ExcelFile(); 

// Loads OpenXML file. 
ef.LoadXlsx("filename.xlsx", XlsxOptions.None); 

// Selects first worksheet. 
ExcelWorksheet ws = ef.Worksheets[0]; 

// Change the value of the cell "A1". 
ws.Cells["A1"].Value = "Hello world!"; 

// Saves the file in OpenXML format. 
ef.SaveXlsx("NewFile.xlsx") 

私はこの.NETコンポーネントを使用していました大きな成功と最小限のコードで何度も

+0

これは箱からこれを行う方法はありません?私はDefinedNameクラスを見ていましたが、これが動作するかどうかはわかりません。 (http://msdn.microsoft.com/en-us/library/ee841230.aspx) – user1005806

+0

信頼してください、あなたはもう誰かによってすでに達成されているタスクを完了するためにすべてを通過したいと思いません。ホイールを再構築する必要はありません。 – MDL

+0

これをチェック:http://stackoverflow.com/questions/643643/how-to-create-and-download-excel-document-using-asp-net – MDL