ワークシートからすべての Excel 数式を削除して (数式をその結果に置き換えて)、ファイルを保存する必要があります。たとえば、B3+13 の代わりに、OpenXML を使用してファイルを開くときに、セルに 2013-04-11 を入れたい
この記事を見つけました http://office.microsoft.com/en-us/excel-help/replace-a-formula-with-its-result-HP010066258.aspx
それは機能します-保存した後、式はありません。C#でも同じ効果が必要です。インターネットで多くの解決策を試しましたが、まだ希望がありません。
string source = @"C:\Source\doc.xlsx";
object Unknown = Type.Missing;
Workbook doc = newApp.Workbooks.Open(
source,
Unknown,
Unknown,
Unknown,
Unknown,
Unknown,
Unknown,
Unknown,
Unknown,
Unknown,
Unknown,
Unknown,
Unknown,
Unknown,
Unknown);
newApp.Calculation = Microsoft.Office.Interop.Excel.XlCalculation.xlCalculationManual;
doc.ForceFullCalculation = true;
newApp.CalculateFull();
newApp.CalculateBeforeSave = true;
doc.SaveAs("c:\\temp\\recalc.xlsx", Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing,
false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
doc.Close();
それで、問題は何ですか?「2013-04-11」ではなく「=DY3+1」と表示されるのはなぜですか?