2

私のプロジェクトでは、ユーザーがカスタマイズしたExcelを.mhtファイルに保存し、すぐにファイルをメモリにリロードする必要があります。コードは次のとおりです

var app = new Excel.Application();   
var wsCurrent = app.ActiveWorkbook.ActiveSheet;
object format = Excel.XlFileFormat.xlWebArchive;
var codename = application.ActiveSheet.CodeName; 

wsCurrent.SaveAs(outputFile, format, Type.Missing, Type.Missing, Type.Missing, 
                Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

ただし、Excel の性質上、ファイルを保存すると、Excel アプリケーションが閉じるまでプロセスがロックされることがわかりました。つまり、保存した.mhtファイルを読み込めませんでした.Excelを閉じたくないのですが、これを行うためのより良いアイデアがあれば、解決策の手がかりを教えてください.

4

2 に答える 2

4

に等しいワークブック変数を作成し、Application.Activeworkbookこのオブジェクトのアクティブシートを保存してから、ワークブックで close を呼び出す必要があります。Excel は次のように開いたままにすることができます。

var app = new Excel.Application();
Excel.Workbook workbook = app.ActiveWorkbook;
Excel.Worksheet wsCurrent = workbook.ActiveSheet;
Excel.XlFileFormat format = Excel.XlFileFormat.xlWebArchive;

wsCurrent.SaveAs(@"C:\test\test.xlsx", format);

workbook.Close();
于 2012-09-28T08:08:28.800 に答える
-1

Open XML SDKを使用できます。ここを参照してください。

于 2012-09-28T06:19:23.070 に答える