C# Can';t以编程方式读取Excel 2010 xltm电子表格文件

C# Can';t以编程方式读取Excel 2010 xltm电子表格文件,c#,excel-2010,C#,Excel 2010,我有一些现有的C#,它将*.xlsm电子表格读入Excel 2010。当我从Excel 2010中将电子表格另存为xltm文件时,从“另存为”对话框中选择格式“Excel宏启用模板(*xltm)” 结果文件双击并在Excel中启动。由于它是一个模板,您可以按您的需要获得文件副本,因此一切正常 如果我尝试使用以下代码加载xltm模板文件: using Microsoft.Office.Interop.Excel; // blah.... Excel._Workbook workbook = _

我有一些现有的C#,它将*.xlsm电子表格读入Excel 2010。当我从Excel 2010中将电子表格另存为xltm文件时,从“另存为”对话框中选择格式“Excel宏启用模板(*xltm)”

结果文件双击并在Excel中启动。由于它是一个模板,您可以按您的需要获得文件副本,因此一切正常

如果我尝试使用以下代码加载xltm模板文件:

using Microsoft.Office.Interop.Excel;

// blah....

Excel._Workbook workbook = _applicationHandle.Workbooks.Add(fullFilename);

// or 

 Excel._Workbook workbook = _applicationHandle.Workbooks._Open(fullFilename, misval, misval,
 misval, misval, misval, misval, misval, misval, misval, misval, misval, misval);
我得到以下错误:

Excel cannot open the file 'RiskStationCal.xltm' because the file format or file extension is not valid. Verify that the file has not been corrupted and that the file extension matches the format of the file.
也许Microsoft API无法读取模板电子表格


适用于Xls和Xlsm文件,但不适用于XLTM文件。

您使用的是Exel interop库吗?如果我没记错的话,这有点旧。因为您使用的是EXCEL 2010(或任何2007+),您是否尝试过使用他们引入的开放XML标准?您可以使用免费库,如EPPlus()或ClosedXml()不是当它是Excel加载项的一部分时,你不能…。不知道这是否有帮助,但在直接的VBA中,你可以添加任何类型的文件,例如,
Workbook.Add(“myworkbook.xlsm”)
将打开一个名为“myworkbook1.xlsm”的副本。这对你有用吗?这正是我正在做的,但来自C#…但我得到了错误!?!适用于Xls和xlsm文件。