2009-09-02 5 views
29

私は、ファイルを読み書きしたり作成したりするためのすべての方法で地獄として混乱しています。 VSTO、OLEDBなどがありますが、すべてと思われ、オフィスを設置する必要があります。Officeをインストールせずに、プログラムで作成、読み取り、書き込みを行うにはどうすればよいですか?

ここに私の状況です:私は入力としてExcelファイルを取るいくつかの計算を行い、基本的に最初のExcelファイルの変更となる新しいExcelファイルを作成するアプリケーションを開発する必要があります。すべてこれを実行するマシンにはオフィスがインストールされていない可能性があるという制約があります。 (理由を聞かないでください)

私はすべてをサポートする必要があります。唯一の恩恵は、スプレッドシート自体が本当にシンプルであることです。列と値のちょうど束、何も空想。残念なことに、エンドユーザとしてのCSVは、CSVファイルが何であるかを知らないかもしれません。

+0

サポートする必要があるバージョンを教えてください。 –

+0

これは必要なMS Excelの機能に依存します。ファンシーな機能が必要ですか? – voyager

+3

どのように寛容なあなたは "失われた機能"になる必要がありますか?例:数式、ピボットテーブル、チャートなどを維持する必要がありますか?それとも、これらのファイルのデータですか? –

答えて

47

は、HTMLテーブル形式でExcelを書く:

<html> 
<body> 
    <table> 
    <tr> 
    <td style="background-color:#acc3ff">Cell1</td> 
    <td style="font-weight:bold">Cell2</td> 
    </tr> 
    </table> 
</body> 
</html> 

し、ファイルXLS拡張子を与えます。 Excelは自動的にそれを変換します

+22

あなたは私を冗談にするのは驚いています。 – eviljack

+3

私はこのメソッドを数回使ったことがありますが、シンプルでうまくいきます。しかし、Webアプリケーションの場合は、コンテンツタイプ/ MIMEタイプをExcelに設定するだけです( –

+1

)。あなたのExcelのバージョンによっては、通常、フォーマットも選択されます。太い表のセル? Excelはそれを運ぶ..背景色?あまりにもコピーします... –

6

代わりにcsvファイルを読み書きします。 Excelはそれらをうまく読み込み、使いやすくなっています。 .xlsファイルに対して作業する必要がある場合は、Excelと同様にOpenOfficeもサポートしてください。 OpenOfficeはExcelファイルを読み書きできます。

+1

OpenOffice APIはここで非常に便利です:http://api.openoffice.org/ –

+2

問題は0フォーマットです。 –

8

Officeがインストールされていないと、Excelのバイナリファイル形式を理解するように設計されたものが必要になります(Office 2007 .xlsxファイルのみを開く場合を除く)。

私が見つけた最高のものはSpreadsheetGearです.COMネイティブであることに加えて、COM/OLEソリューション(これまで私が使用していたもの)

0

Excelファイルはプロプライエタリな形式であり(afaik)、オフィスの相互運用性を利用できなければ、これを行うことはできません。いくつかのサードパーティのツールが存在しますが(おそらくMSのフォーマットをライセンスしますか?)、私は自分自身の有用性についてコメントするためにそれらを使っていません。

基本ファイル形式を制御できない、つまりシンプルなCSV形式やXML形式は使用できないと思いますか?

0

Excel XML形式を使用するCarlosAgという非常に素晴らしいライブラリを使用していました。それは素晴らしかったです(Excelは形式を認識します)。また、信じられないほど高速でした。それをチェックしてくださいhere

ああ、私たちはあなたが必要と同じ理由でこれを使用していました。これらのファイルを生成したサーバーはExcelをインストールできませんでした。

0

@RHickeの提案でCSVファイルを扱うことができず、デスクトップアプリケーションには要件ごとにXLがインストールされていることが保証されているため、Webアプリケーションで作業していると仮定します。

私は、言うWebサービスとしてあなた加工アプリを作成し、XLから直接あなたのWebサービスと相互作用するXLアドインを構築したいです。

2

ウェイ数bazillionと1つを考慮しましたか:Open XML SDKを使用していますか?スタイルを保持して好みに合わせて調整することができます。あなたが実際のファイルでできることは、プログラム的に達成することが可能です。SDKには、Document Reflectorというツールが付属しています。このツールは、基礎となるXMLを表示し、それらを生成するために使用できるLINQ文を表示します。これは、変更をどのようにして見て、それをコード内で再現しているかを見て回るための鍵です。

これは新しいXMLベースのフォーマット(* .xlsx)では動作しません。これは古いバージョンではありません。わずかな学習曲線がありますが、ブログや他のサイトでより多くの資料が作成されています。

1

Excel XLSXファイル "just" XMLファイル - より正確には、いくつかのXMLファイルを含むZIPファイル。 ExcelファイルTest.xslxからTest.zipに名前を変更し、あなたの好きなZIPプログラムで開きます。 XMLスキーマはafaikで標準化され、利用可能です。しかし、私は、プリミティブなXML処理ツールとフレームワークだけを使って操作するのは簡単ではないかもしれないと思います。

0

XLSXファイルの場合は、http://www.codeplex.com/ExcelPackageを使用してください。それ以外の場合は、デイビッドが提案したように、有料の第三者ソリューションがあります。

1

コストが問題にならない場合は、AsposeのExcel製品を調べることをおすすめします。私は彼らのWord製品を使用し、私は満足しています。

Aspose.Cells

+2

いくつかの無料の代替案を試してみた後、私のチームはAspose.Cellsの使用を決定しました。これは非常に直感的に使用でき、コードは簡単に維持できます。 – dawntrader

0

私は、サーバー・マシンにインストールされているオフィスを持っていないの要件を理解することができます。 asposeのようなライブラリがありますが、ライセンスの必要なものもあります。 MS Excel形式をターゲットにしている場合は、ネイティブの相互運用性ライブラリであるMicrosoftのACE OLEDBデータプロバイダを使用できます。これらのプロバイダは、マシンにインストールし、プログラムによる書き込みを開始できます。必要に応じて接続文字列とコマンドを定義する必要があります。 (Ref: This article @yoursandmyideas)では、セットアップとトラブルシューティングの情報とともにこのライブラリの使用について説明しています。

関連する問題