2

私たちは OpenOfficeXML を使用しており、これまでのところうまく機能しています。異なるワークブックから複数のワークシートをコピーし、それらを 1 つのワークブックに (複数のワークシートとして) 配置する必要があるシナリオがあります。

1.このオプションは Office Open XML には存在しません 2.あるワークブックから別のワークブックにコピーする内部 xml を使用しようとすると、アプリケーションの実行中にエラーはスローされませんが、Excel ファイルを開くと、破損したシートがスローされますエラー。

xlpackage.Workbook.Worksheets["Sheet1"].WorksheetXml.InnerXml = xcelNewWorkSheet.WorksheetXml.InnerXml;)
4

2 に答える 2

3

おそらく、この関数は Jesper の anwser の後に追加されたものです。

ExcelWorkbook wb = pk.Workbook;
ExcelWorkbook wbRef = pkRef.Workbook;

ExcelWorksheet wsRef = wbRef.Worksheets["Referentials"];
wb.Worksheets.Add("New Referentials", wsRef);

OfficeOpenXml : public ExcelWorksheet Add(string Name, ExcelWorksheet Copy);

于 2016-03-10T10:57:23.587 に答える
1

ここで提示しているような単純なアプローチでこれが機能する方法はありません (申し訳ありません)。

WorkSheet は分離されたインスタンスではありません。共有文字列テーブル、スタイル、参照要素などへの参照が含まれています。

私はそれができないと言っているのではありません - もちろんできるのです。ただし、ここで行ったことよりもはるかに高い複雑さに期待を設定する必要があります。

コピーする必要があるワークシートについては、パッケージの他の部分へのすべての参照を特定して分析する必要があります。次に、それらもコピーして、コピー先のスプレッドシート パッケージ内の既存のスタイル、フォーマット、SharedStrings テーブルにマージする必要があります。

既存のターゲット スプレッドシートでは、追加する新しいコンテンツへのすべての必要な参照を作成する必要があります。

これに役立つサードパーティのツールを見つけようとすることもできますが、他の人はそれらの名前で開始する必要があります-私は何も知りません.

于 2014-10-21T19:08:42.623 に答える