2011-07-19 12 views
0

現在、私たちのアプリケーションは、サーバーに大きなデータをオフィス2003 xmlスプレッドシート形式にエクスポートしています。 ユーザーはxmlファイルをダウンロードできます。このファイルはオフィス03と07で正しく開くことができます。 このxmlファイルからxlsとxlsx形式を作成してユーザに提供できるかどうかを知りたいですか?Office 2003 xmlスプレッドシートをプログラムでC言語で生成する方法#

[サーバはオフィスを持っていないと相互運用be.Soどちらの意志が、この場合には無用である。]

====== EDIT =====

は使用できませんサードパーティのソリューション... :(

答えて

0

私はあなたの質問を正確に理解していれば、純粋なXMLだけではなく、バイナリ形式の通常のExcelファイルと同様にExcelによって解釈されるSpreadsheetMLを提供しています。だからあなたのユーザーはすでに非常に素晴らしい解決策を持っています。これらのファイルをどのように作成していますか? XMLデータをXSLTを使用して特定のXML形式のSpreadsheetMLに変換します。そうすれば、Excelで可能なこと(書式、数式など)は何でもできます。 XMLをCSVに変換するだけではありません。

なぜこれを変更しますか?私は、結果のXML-Excelファイルは通常、巨大であることがわかります、その理由は?

Excel 2007形式(xlsx)は基本的に、ファイルの構造とデータを記述するXMLファイルのzipアーカイブなので、xlsxのファイル拡張子の名前をzipに変更し、抽出後に検査します - あなたは既存のソリューションを適応させることができるかもしれません。つまり、SpreadsheetML-(XML)ファイルを1つ作成して複数作成し、それらをサーバーにパック/圧縮します。私はあなたの通常のサーバーのインストールに必要なツールが必要と仮定します。

しかし、この解決策は(あなたが現在の解決策を知っているように)私が大丈夫であれば分かりませんが、新しい機能を追加するためのXSLTの変更にはかなりの知識が必要です。だから私はAspose.Cellsを推薦することもできます。知識のあるユーザーでもシンプルなフォーマットを変更できるかもしれません。XMLは既にMicrosoft Excelのスプレッドシート形式のために定義されfile.ItプレーンXMLない

HTHアンドレアス

+0

ありがとうございます。 :) –

+0

これはXMLベースのフォーマット(.xlsx)では完璧に動作しますが、.xlsバイナリフォーマットを生成する必要がある場合は役に立ちません。 – abitgone

1

XSLTを使用してXMLをCSVに簡単に変換できますが、本当にネイティブのExcelスプレッドシートタイプでエクスポートする必要がある場合は、コンポーネント。

過去に使用したことがありますが、私はお勧めですndはAspose.Cellsです。私たちはこれを使って、普通のCSV出力では不十分なExcelスプレッドシートを生成しています(あなたのケースでは十分でないと確信していますか?XSLTはその短期的な作業を行います)。

無料ではありませんが、サーバーにOfficeをインストールする必要がなくなり、Office Automationなどの使用を避けることができ、非常に優れたサポートを得ています。

編集以下のコメント
サーバーにOfficeをインストールすることはできません場合は、サードパーティのコンポーネントを使用することはできませんし、あなたがして、相互運用機能を使用できない場合 - あなたが快適に取得したい場合を除きとMicrosoftが提供するExcel Binary File Format (.xls) Structure Specificationを読んでください。答えは非常に短いものです:いいえ。

+0

。 –

+0

次に、相互運用機能を使用したり、サーバーにOfficeをインストールしたり、サードパーティのコンポーネントやソフトウェアを使用したりすることができないというあなたのコメントに基づいて、Office XML形式(.xlsx )をバイナリに変換します。私はこれを反映するために上記の私の答えを編集しました。 – abitgone

0

プロジェクトに参照されているDLLがオフィス2003 *以上でない場合は、XML全体を手動で解析することができない限り、Office XMLデータをプログラムで直接読み取ることはできませんその形式を研究することによって。

+0

私はreadingについて質問していませんでした。私はすでにxlsをxls/xlsxとして保存する必要があります。 –

+0

ああ、OK。その場合、Andreaの提案に従ってzipファイルを作成することができます。あなたのサーバーでそれができない場合でも、唯一の解決策は、サーバーからWindowsベースのサーバー上のWebサービスに要求を送信することです。この新しいWebサービスでExcel変換ロジックを作成することができます。 –

関連する問題