在我的项目中我需要将用户自定义的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, 任何一个更好的想法这样做,请给我一个解决方案的线索, 提前谢谢了, 欢呼声,
答案 0 :(得分: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();
答案 1 :(得分:-1)
您可以使用Open XML SDK。请参阅here。