2009-11-09 13 views
7

C#でExcelファイルを作成する必要があります。 XML文書を作成するのが最も簡単な方法です。私は複数の名前付きタブを持つ必要があり、その特定のセルがテキスト、日付時刻、数値などであることを指定できるようにする必要があります。C#でExcelファイルを構築する

答えて

7

あなたはSystem.IO.Packaging APIを必要とする - これはあなたをできるようになりますがInserting Values into Excel 2007 Cellsで説明されているように.xlsxドキュメントを生成します。 Excel 2003およびXPでは、Excel 2007形式を無料でMicrosoft Office Compatibility Packをインストールして使用することもできます。

+0

@wcoenen -nice edits、thanksありがとうございました。 – Murph

+0

'System.IO.Packaging'でExcelをビルドする方法の例はありますか?私はExcelを扱うドキュメントで何も見つけることができません。 –

+0

@IanBoydここでClosedXMLを見てみるといいでしょう。ここにはhttp://closedxml.codeplex.com/ – Murph

1

あなたは私たちが仕事でAsposeと呼ばれるスイートを使用して、このlink

spreadsheetgear

CarlosAg Excel Xml Writer Library

+0

があります.CarlosAgライブラリは優れていますが、制限があり、System.IOが効果的です。パッケージ – Murph

+0

とスプレッドシートギアはどうですか? –

+0

@astander - スプレッドシートギアは幾分自由ではないので、調査したことはありません。 – Murph

0

をchechすることができます。それは私たちのために驚異的に働く大きな機能の "Cells"コンポーネントを持っています。

2

Microsoftの推奨メカニズムが使用することを含む、これは、行うことがイライラ難しいですオフィスでは、デスクトップでは問題ありませんが、ウェブでは役に立たないです。

.xlsファイルのバイナリ形式は、Microsoftが

.xslxオフィス2007で.xlsxのOpenXMLファイルを導入しましたので、是非ですおそらく簡単です - それはXMLファイルの完全なだけのzipコンテナです。 System.IO.Packagingで開き、System.Xmlで編集できます。古いバージョンのオフィスにも互換性パックがあります。

残念ながら、それは単純ではありません - .xslxの形式はhorrible beyond wordsです。

16ビット最適化バイナリ.xls(Windows 3.1用に設計されたもの)を使用し、バイナリではなくXMLにシリアライズしたようです。その後、実際にはVMLというセルのコメントのような、本当にばかげた変更が追加されました。彼らはXMLに数多くのマジックナンバーとメタデータを追加していますので、あなたはそれにいかなる種類の変換も使用できないので、あなたは手でその吸盤を解析しています。

最後に、彼らは完全なロバをデバッグするようにしました。互換性パックが壊れていると報告したファイル(理由はありません)が最新のバージョンのOfficeを正常に開くことができるように、ファイル.xslxが定期的に見つかります。

そこには本当に素晴らしいオープンソースライブラリがあります:SpreadsheetLightです。これは非常に優れたライブラリですが、.xslxファイルを掘り下げて掘り下げる必要があるものはすべて痛いでしょう。

関連する問題