C#将Excel工作表保存为html并阅读此html

时间:2012-09-28 05:53:21

标签: c# excel excel-interop

在我的项目中我需要将用户自定义的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, 任何一个更好的想法这样做,请给我一个解决方案的线索, 提前谢谢了, 欢呼声,

2 个答案:

答案 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