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应用程序关闭。换句话说,除非我关闭我不想关闭的 excel,否则我无法加载保存的 .mht 文件,有更好的主意,请给我一个解决方案的线索,非常感谢提前,干杯,

4

2 回答 2

4

您需要创建一个等于 的工作簿变量Application.Activeworkbook,保存该对象的活动表,然后在工作簿上调用关闭,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 回答