0

現在、C# で COM Interop を使用して Excel ワークブックにデータをインポートするアプリケーションに取り組んでいます。このデータはかなり複雑で長いため、Excel の XML からのインポート機能を使用しています。サーバー上で Excel を実行すると問題が発生するため、ワークブックを作成するために、SpreadsheetGear や Aspose などのサードパーティ ソリューションへの移行を検討しています。

SpreadsheetGear と Aspose は XML インポートをサポートしていません。サードパーティ製のサーバーフレンドリーなツールを知っている人はいますか?

--編集-- データは、C# クラスに入れ、XML にシリアライズする DB2 データベースからのものです。次に、XML を約 30 のテーブルとその他のセルにインポートします。次に、テーブルをコピーして出力シートに貼り付け、オリジナルを再利用してさらにインポートします。

--編集-- 出力は、1 つのシートに複数のテーブルとフィールドを含むフォームです。XML マップが役立つことの 1 つは、セル座標をコードに大量にハードコーディングすることなく、セルの位置を追跡することです。

4

4 に答える 4

1

この機能を可能にするサード パーティ ツールは見つかりませんでしたが、Aspose.Cells には、XML マップと同様の方法で特定のセルを指定できる「スマート マーカー」機能があります。これが私が探していた解決策かもしれないと信じています。

于 2011-04-20T14:13:24.857 に答える
1

EPPlusはかなり優れたライブラリですが、XML を直接インポートできるかどうかはわかりませんが、csv ファイルを直接インポートできます。サンプルに例があります。

それでも実装はかなり簡単です。

于 2011-04-15T15:57:12.620 に答える
1

SSIS を見ることができます。これには、XML をデータソースとして、スプレッドシートを宛先として設定できる機能があります。(またはその逆)。

于 2011-04-15T15:28:23.563 に答える
0

XML をデータセットにロードし、EPPlus を使用して Excel からデータテーブルを取得し、そこから Excel ファイルを作成します。

DataSet ds = new DataSet();
            DataTable dt = ds.Tables[0];
            using (ExcelPackage pck = new ExcelPackage())
            {
                //Create the worksheet
                ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Calls");

                //Load the datatable into the sheet, starting from cell A1. Print the column names on row 1
                ws.Cells["A1"].LoadFromDataTable(dt, true);

                Byte[] bin = pck.GetAsByteArray();

                string file = filePath;
                File.WriteAllBytes(file, bin);

            }
于 2011-09-30T14:35:49.633 に答える