1
我有一個excel文件,並且有一段代碼用公式更新了一些單元格。XML SDK重新計算值
保存文件之前,我設置這兩個布爾屬性:
保存文件後,我打開它再次使用Open XML SDK,但我仍然得到舊值。當我使用Excel打開Excel文件並保存時,我可以看到新的值。
你知道我可以如何重新計算值嗎?如果我保存文件,我期待如果我打開它,值應該重新計算。
Thanks.Jose。
我有一個excel文件,並且有一段代碼用公式更新了一些單元格。XML SDK重新計算值
保存文件之前,我設置這兩個布爾屬性:
保存文件後,我打開它再次使用Open XML SDK,但我仍然得到舊值。當我使用Excel打開Excel文件並保存時,我可以看到新的值。
你知道我可以如何重新計算值嗎?如果我保存文件,我期待如果我打開它,值應該重新計算。
Thanks.Jose。
如果您有緩存的值,那麼將使用這些值,並且不會重新計算這些值。嘗試刷新緩存的值,如下面的代碼片段所示:
public static void FlushCachedValues(SpreadsheetDocument doc)
{
doc.WorkbookPart.WorksheetParts
.SelectMany(part => part.Worksheet.Elements<SheetData>())
.SelectMany(data => data.Elements<Row>())
.SelectMany(row => row.Elements<Cell>())
.Where(cell => cell.CellFormula != null && cell.CellValue != null)
.ToList()
.ForEach(cell => cell.CellValue.Remove());
}
只要確保在保存文檔之前調用此方法。
它沒有按預期工作。 Al CellValues變爲空白。 – AjayR
它對我有用 - 你說CellValues在Excel中顯示爲空白嗎?或者在保存的文件中顯示爲空白?只有在Excel中加載工作簿後纔會重新計算它們。 –