Interop.Excel バージョン 12
オフィス エクセル 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 として保存できます。したがって、同じことがプログラムでも機能すると仮定します。