如何将excel格式设置为0.00%到0.0000十进制值

时间:2015-11-18 14:27:15

标签: c# .net vb.net excel excel-interop

我们需要将一些数据导出到excel,这很好,数据是百分比,因此我提供

cell.NumberFormat = "0.00%"

导出值的数据类型为十进制,因此上述格式可以正常工作。

但是当值为0.00000000000000000时会出现问题 excel无法设置格式,因此当我们打开导出的excel文件时,它说

  

Excel完成了文件级验证和修复。本工作簿的某些部分可能已被修复或丢弃。   修复的记录:来自/xl/worksheets/sheet.xml部分的单元信息

并且所有值为0的单元格都显示标记 -

  

此单元格中的数字格式为文本或前面有撇号。

当值为0.023443434343时,excel将其格式化为2.34%,格式为百分比,带有2位小数;我不确定为什么它无法提供0值的格式。

1 个答案:

答案 0 :(得分:1)

将其读入一个double,然后格式化并将其写回。我没有那样的错误。

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

我不清楚您的数据是否已经在工作表中。如果不是,则将数据放入源中的双精度。

d = Val("0.00000000000000000")
ws.Range("C14").NumberFormat = "0.00%"
ws.Range("C14").Value = d