我使用以下方法将excel文件中的单元格值转换为对象矩阵:
Object[,] values = (Object[,])worksheet.UsedRange.Cells.Value;
问题是因为在excel中我有时会有十进制数字,有时会有百分比数字。
调用Cells.Value
时,我得到十进制格式的百分比数字。对于数字为60.32%的示例,我得到0.6032的值,我想保持这种十进制格式并得到60.32%。
我已尝试使用worksheet.UsedRange.Cells.Text
,但它返回null
,因为UsedRange.Cells
在Excel中具有不同的格式。
那么,我怎么能保持这个数字的百分比呢?
答案 0 :(得分:0)
对于 ClosedXML API:而不是UsedRange.Cells.Value
尝试使用UsedRange.Cells.GetFormattedString()
如果您正在使用互操作 API,则需要做一些额外的工作。
Range.NumberFormat
获取格式,然后相应地您可以将每个单元格值乘以100并附加'%'角色到底。 li>
如果范围内的单元格具有不同的类型,则Range.NumberFormat
将返回null。然后,您需要遍历该特定范围内的每个单元格。检查特定单元格的NumberFormat(例如 ((Range)wks.Cells[1,1]).NumberFormat
)并相应地执行操作。