0

データベースデータに基づいてExcelファイルを作成するための汎用ツールキットに取り組んでいます。私は以前にいくつかの方法で作業しました:

1)CSVファイルを作成する
Excelはそれを開き、各値が1つのセルに入るデータをフォーマットします。各行は1行です。
欠点:ファイル拡張子は、デフォルトで常にExcelで開かれるとは限りません。
非常に大きなデータソースでは「遮断」されているようです。ファイルの残りの部分がExcelによって「無視」される前に、メモリから約65,000行にヒットしました。

2)XMLスプレッドシートを生成します
http://msdn.microsoft.com/en-us/library/bb226687(v=office.11
​​) .aspx欠点:開くときにエラーが発生します'開こうとしているファイル**はファイル拡張子で指定されたものとは異なる形式'。それはうまく開きますが、自信を刺激するものではありません。
SQLからXMLへの書き込みが面倒になります。

少し前に、Excelの相互運用機能の使用方法について簡単に説明しました。また、Excel/Officeがインストールされていないサーバーからコードを実行しようとすると問題が発生したと確信しています。ほとんどの場合、これが当てはまります。

通常、コードはWebページまたはSilverlight WCFサービスのいずれかを介して実行されます(違いが生じる場合)。
また、ユーザーにメールで送信するか、ファイルをすぐに開いて保存できるようにするオプションがあると便利です。
ヘッダー/色/式を含めるとボーナスになります

ほとんどの場合、現時点ではデータをコピーして貼り付けるだけです。
しかし、データセットが大きいと、障害が発生しやすくなるか、非常に遅くなります。

誰もが私にそれについて行く方法についての最高のアイデアをくれます

4

3 に答える 3

1

I recommend using EPPlus, it is very easy to convert DataTables to Excel files and allows for tons of styling options and even data validation. You don't even need Excel installed on the server.

于 2012-06-07T13:48:53.643 に答える
1

CSVには、多数の行の後で切断するという問題があるため、そのアプローチは使用できません。

相互運用機能の使用には注意が必要です。サーバーにExcelとPIAがインストールされていることを確認することに加えて、Excelコードを単一のスレッドで実行する必要があります(ある種のキューイングメカニズムを使用)。そうしないと、その面で問題が発生し始めます。

紛らわしいメッセージを除けば、XMLは実際には最も信頼できるソリューションのようです。コメント欄で私の質問にお答えいただければ、それもお手伝いできるかもしれません。

PS。Excelシートを生成する前に行数を決定できる場合(必要です)、2つの形式のいずれかで結果を提供できます:小さなファイルの場合はCSV、大きなファイルの場合はXML、トレードオフは紛らわしいメッセージです(提供それが消えないこと)。CSVのしきい値を超えているファイルの割合によっては、許容できる妥協案である可能性があります。

于 2012-06-07T13:44:52.110 に答える
1

Office をインストールしなくても、 Aspose.Cellsなどの市販製品を使用して、サーバー上に C# で Excel スプレッドシートを生成できます。オブジェクト モデルがどのように見えるかを確認したい場合は、aspx.cs ページにスプレッドシートを生成するサンプル コードがいくつかあります。

残念ながら、ソース管理からコードを取得してビルドする開発者が複数いる場合、価格体系は非常に厄介です。彼らは正式にあなたを同じチームの一員と見なし、開発者ごとにライセンスを要求します (そのコードに直接取り組んでいる唯一のプログラマーであっても)。

于 2012-06-07T13:41:06.417 に答える