我需要從我的工作表中刪除所有的Excel公式(更換其結果的公式),然後保存文件。例如 - 而不是B3 + 13我想有2013-04-11細胞,當我使用的OpenXML儲蓄重新計算Excel文件
我發現這篇文章 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();
那麼是什麼問題?爲什麼我可以看到「= DY3 + 1」而不是「2013-04-11」?
如何使用Interop來遍歷所有表單?我只知道如何在OpenXML中做到這一點 –
我已經更新了迭代遍歷工作表的foreach循環的答案,假設您的工作簿對象被命名爲「doc」。 –
優秀:)它的作品:)謝謝:) targetRange.PasteSpecial(..)不粘貼(..) –