Interop.Excel 版本 12
办公室 Excel 2007
我一直在编写代码以打开 .xslm 文件,然后将其转换(保存)为 .xslx。在这之间,我确实需要做一些处理,但这没关系。以下是代码:
namespace Exceltest
{
class Program
{
static void Main(string[] args)
{
Application oXL = null;
oXL = new Application();
oXL.Visible = false;
oXL.DisplayAlerts = false;
try
{
Workbook book = oXL.Workbooks.Open("E:\\CorrectPF1.xlsm", 0, true, 5, "access123", "", true,
XlPlatform.xlWindows, "\t", false, false, 0, true, null, XlCorruptLoad.xlNormalLoad);
Worksheet worksheet = (Worksheet)book.Sheets["Resource allocation"];
worksheet.Activate();
oXL.Visible = false;
oXL.DisplayAlerts = false;
book.SaveAs("E:\\PF1.xlsx", XlFileFormat.xlOpenXMLWorkbook,
"", Type.Missing, Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange,
XlSaveConflictResolution.xlLocalSessionChanges, Type.Missing, Type.Missing,
Type.Missing, false);
}
catch (Exception ex)
{
//Handling exception here
}
}
}
}
此代码执行没有问题(没有任何异常),但没有文件以 .xslx 扩展名保存。我发现它适用于某些文件,但不适用于其他文件。比如说,它不适用于名为 PF1.xslm 的文件。我可以在 Office Excel 中打开 PF1.xslm 并将其保存为 .xslx。因此,同样的假设也可以以编程方式工作。