C# 如何将excel格式的0.00%设置为0.0000十进制值
我们需要将一些数据导出到excel,这很好,数据以百分比表示,因此我提供C# 如何将excel格式的0.00%设置为0.0000十进制值,c#,.net,vb.net,excel,excel-interop,C#,.net,Vb.net,Excel,Excel Interop,我们需要将一些数据导出到excel,这很好,数据以百分比表示,因此我提供 cell.NumberFormat = "0.00%" 导出值的数据类型为decimal,因此上述格式工作正常 但当值为0.00000000000000000 excel无法将格式设置为该格式,因此当我们打开导出的excel文件时,它会显示 Excel已完成文件级验证和修复。此工作簿的某些部分可能已被修复或丢弃。 修复的记录:来自/xl/worksheets/sheet.xml部分的单元格信息 所有值为0的单元格都会显示
cell.NumberFormat = "0.00%"
导出值的数据类型为decimal,因此上述格式工作正常
但当值为0.00000000000000000
excel无法将格式设置为该格式,因此当我们打开导出的excel文件时,它会显示
Excel已完成文件级验证和修复。此工作簿的某些部分可能已被修复或丢弃。
修复的记录:来自/xl/worksheets/sheet.xml部分的单元格信息
所有值为0的单元格都会显示一个标签,上面写着-
此单元格中的数字格式为文本或前面有撇号
当值类似于
0.02344343
excel时,将其格式化为2.34%
,格式为带2位小数的百分比;我不知道为什么它不能为0值提供格式。将其读入双精度,然后格式化并写回。这样我就不会有任何错误
Dim ws As Excel.Worksheet
Set ws = ActiveWorkbook.Sheets("Sheet1")
Dim d As Double
d = ws.Range("C14").Value
ws.Range("C14").NumberFormat = "0.00%"
ws.Range("C14").Value = d
我不清楚你的数据是否已经在工作表中。如果不是,则将数据从源放入double
d = Val("0.00000000000000000")
ws.Range("C14").NumberFormat = "0.00%"
ws.Range("C14").Value = d
真正地令人惊讶对此有什么解释吗。。格式很好,但仍然显示相同的错误。。。所以修复错误仍然存在,但修复后excel似乎还可以。不确定这到底是为什么。Excel在假设您想要什么时会做一些奇怪的事情。它主要与日期有关,但我在百分比方面也遇到了这些问题。这个错误可能来自其他原因,因为我在保存并重新打开工作簿后没有得到它。