Excel 除非编辑,否则不显示公式
Excel does not display formulas unless editing
我在 Apache poi 中创建了一个通用 excel,其中包括公式、价格值等。
这是预期的 excel(1428,78 241 等列是价格格式),即 "\" + "\u20BA" + "#,##0.00"
。
当我从主机下载 excel 时(没有域)excel 显示为
在我按下启用编辑后,它们就会显示。我的问题是,为什么我不能在预览中显示我的公式 mod?
而且我也看不到 phone 生成的 excel
工作簿有什么设置吗?
没有 ssl 或没有域的托管是否由于安全问题导致问题?
Excel 不会在保护模式下计算公式单元格。公式会消耗客户端设备上的大量计算能力,并且还可能会尝试导入外部数据,从而带来潜在的安全风险。
相反,在保护模式下 Excel 将显示缓存值(如果已经计算),否则显示默认值,0.00
在您的情况下。
以这个公式为例,C1 = A1 + B1
.
假设您使用的是 .xlsx 格式,工作表数据在内部存储的结构如下:
...
<!-- worksheet.xlsx!xl/worksheets/sheet1.xml -->
<sheetData>
<row r="1">
<c r="A1" t="n">
<v>1.0</v>
</c>
<c r="B1" t="n">
<v>2.0</v>
</c>
<c r="C1" t="n">
<f>A1 + B1</f>
<v>3.0</v> <!-- This is the cached formula result -->
</c>
</row>
</sheetData>
...
在此示例中,<v>3.0</v>
是缓存的公式单元格值。
您可以使用 POI XSSFFormulaEvaluator
计算公式单元格并保存缓存值,以便它在 Excel 保护模式下可用。
// evaluate all formulas in the workbook
XSSFFormulaEvaluator evaluator = new XSSFFormulaEvaluator(workbook);
evaluator.evaluateAll();
一些补充说明:
evaluateAll()
只需执行一次即可保存工作簿。有关详细信息,请参阅 https://poi.apache.org/components/spreadsheet/eval.html#recalculation。
- POI 能够评估大多数,但不是所有 Excel 公式。
我在 Apache poi 中创建了一个通用 excel,其中包括公式、价格值等。
这是预期的 excel(1428,78 241 等列是价格格式),即 "\" + "\u20BA" + "#,##0.00"
。
当我从主机下载 excel 时(没有域)excel 显示为
在我按下启用编辑后,它们就会显示。我的问题是,为什么我不能在预览中显示我的公式 mod?
而且我也看不到 phone 生成的 excel
工作簿有什么设置吗?
没有 ssl 或没有域的托管是否由于安全问题导致问题?
Excel 不会在保护模式下计算公式单元格。公式会消耗客户端设备上的大量计算能力,并且还可能会尝试导入外部数据,从而带来潜在的安全风险。
相反,在保护模式下 Excel 将显示缓存值(如果已经计算),否则显示默认值,0.00
在您的情况下。
以这个公式为例,C1 = A1 + B1
.
假设您使用的是 .xlsx 格式,工作表数据在内部存储的结构如下:
...
<!-- worksheet.xlsx!xl/worksheets/sheet1.xml -->
<sheetData>
<row r="1">
<c r="A1" t="n">
<v>1.0</v>
</c>
<c r="B1" t="n">
<v>2.0</v>
</c>
<c r="C1" t="n">
<f>A1 + B1</f>
<v>3.0</v> <!-- This is the cached formula result -->
</c>
</row>
</sheetData>
...
在此示例中,<v>3.0</v>
是缓存的公式单元格值。
您可以使用 POI XSSFFormulaEvaluator
计算公式单元格并保存缓存值,以便它在 Excel 保护模式下可用。
// evaluate all formulas in the workbook
XSSFFormulaEvaluator evaluator = new XSSFFormulaEvaluator(workbook);
evaluator.evaluateAll();
一些补充说明:
evaluateAll()
只需执行一次即可保存工作簿。有关详细信息,请参阅 https://poi.apache.org/components/spreadsheet/eval.html#recalculation。- POI 能够评估大多数,但不是所有 Excel 公式。