既存の Excel 2003 テンプレート (xlt) を編集し、新しい *.xls ファイルに保存する単純な c# アプリケーションを実行しています。それは次のようなものです:
Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Open("\\my_template.xlt");
Microsoft.Office.Interop.Excel._Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Sheets[0];
次に、ファイル内のさまざまな数式で使用されるいくつかのセルを変更し、テンプレートを新しいファイルに保存します。
workbook.SaveAs("newfile.xls", Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal);
workbook.Close(true, misValue, misValue);
app.Quit();
worksheet = null;
workbook = null;
app = null;
問題は、新しいファイルが正常に保存されたら、それを開いて、編集したセルを使用している数式の結果が「#NAME」などのようになっていることです。ファイルを再度開くと、すべてが正常になります。なぜそれが起こるのですか?
間違った方法でファイルを保存している可能性があります。そのため、最初に開いたときにエラーが表示されますか? この問題は 2003 オフィスでのみ発生します... 私が認めたように。