我将一些数据导出到现有的excel文件。问题是,用户可以打开此文件。
为了阅读和写入Excel,我使用Microsoft.Office.Interop.Excel.
是否可以在Excel桌面应用中显示更改的编辑文件? 或者可以检查文件是否在Excel中打开?
这是我打开该文件的方式:
xlApp = new Excel.Application();
xlApp.DisplayAlerts = false;
workbook = xlApp.Workbooks;
xlWorkBook = workbook.Open(filePath, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", true, false, 0, true, false, false);
var worksheets = xlWorkBook.Worksheets;
而不是遍历所有工作表并使用向单元格写入值来填充数据
Excel.Worksheet xlWorkSheet = worksheets.get_Item(sheetIndex);
Excel.Range range = GetRange(xlWorkSheet);
range.Cells[row,column] = value;
然后我保存文件:
xlWorkBook.Save();
谢谢 的Jakub
答案 0 :(得分:2)
整个魔法是:
try
{
xlApp = (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
}
catch (Exception ex)
{
if (ex.ToString().Contains("0x800401E3 (MK_E_UNAVAILABLE)"))
{
xlApp = new Excel.Application();
}
else
{
throw;
}
}
这将打开excel应用程序。然后在这个Excel实例中进行所有更改。所以一切都经过编辑,可以在打开的excel应用程序中看到。
谢谢你们