1

どの方法がより良い方法であるかについて意見を求めました。非常に特殊な形式 (行の色とフォントに至るまで) で生成する必要がある販売レポートがあります。

私はすでに、データベースから取得して約 15 秒でワークブック全体を作成するマクロを作成しました。問題は、どのように入力する必要があるかです。

1) サーバー側の処理: ユーザーはイントラネット ページで要求を開始します。ASP.NET はワークブック テンプレートを開き、マクロを実行して最終的なシートを返します。

2) ローカルで処理: ユーザーは空のテンプレートをダウンロードし、データベースに自動的に接続するデスクトップから実行します。

テンプレート、タイミング、ユーザー、およびデータのセキュリティを強制できるため、最初のものが気に入っています。しかし、インターネット Web サーバーで Excel オートメーションを実行することは推奨されますか? 私は 2 番目のオプションが気に入っていますが、テンプレート シートが社内に散らばり始めているため、標準化が失われるのではないかと心配しています。

4

2 に答える 2

2

サーバー側に関しては:

スプレッド シート用の OpenOffice/LibreOffice XML 形式を確認することを強くお勧めします。

ヘッドレス モードで localc バイナリを使用して、XML ファイルを XLSX などに変換できます。ReportLab を使用する代わりに、PDF ファイルを作成するために使用しています。

別の方法として、Microsoft 形式に直接書き込もうとする他のプロジェクトを次に示します。

http://pypi.python.org/pypi/xlrd http://pypi.python.org/pypi/xlwt

クライアント側に関しては:

ユーザーが Excel のみを使用し、他の表計算ソフトウェアを使用しないと予想される場合は、ODBC データ ソースを使用してください。楽しい VBScript を使用して HTTP サーバーが読み込まれるたびにデータをプルする場合を除き、ODBC はユーザーごとに構成する必要があります。また、単にデータを保持する XLS スプレッドシートを作成し、サーバーとクライアントの両方の XLS 要件となる XLS ドキュメントに含めるオプションもあります。

サーバー側に行きます。情報のアーカイブと共有が簡単になり、マルチプラットフォームになる可能性が高くなります。

于 2012-10-04T17:34:07.153 に答える
1

最初のオプションを使用したい場合は、サーバーにインストールされている Excel のインスタンスで VBA を使用することを避けたいと考えています。これは非常にリソースを大量に消費し、うまく拡張できません。代わりに、ASP.NET コードを記述している場合は、.NET フレームワークに組み込まれている Microsoft Office Interop 機能を使用してみてください。既存の VBA コードを変更して ASP.NET で実行できるようにすることは可能ですが、最終的にははるかに信頼性の高い製品が得られます。

サンプルコード

ただし、@whardier が彼の応答で指摘しているように、これが大規模なサイトまたは公開サイトの場合、彼の提案ははるかに適切であり、さらに拡張されるでしょう。

于 2012-10-04T17:30:41.730 に答える