在 Excel 单元格中显示一个格式为百分比的值,例如12.3%。
默认情况下,该值显示为文本,但我需要将其显示为数字。
这个方法应该有很多吧,上面的那个回答已经给了一种,除了显示百分数之外,还有其他的很多种方式可以显示:
/*
https://demo.grapecity.com.cn/documents-api-excel-java/demos/numberformats
*/
// Create a new workbook
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.getWorksheets().get(0);
worksheet.getRange("A:H").setColumnWidth(17);
// Display 111 as 111.
worksheet.getRange("A1").setValue(111);
worksheet.getRange("A1").setNumberFormat("#####");
// Display 222 as 00222.
worksheet.getRange("B1").setValue(222);
worksheet.getRange("B1").setNumberFormat("00000");
// Display 12345678 as 12,345,678(千分位表示)
worksheet.getRange("C1").setValue(12345678);
worksheet.getRange("C1").setNumberFormat("#,#");
// Display .126 as 0.13.(小数点表示)
worksheet.getRange("D1").setValue(.126);
worksheet.getRange("D1").setNumberFormat("0.##");
// Display 74.4 as 74.400.(小数点后表示两位)
worksheet.getRange("E1").setValue(74.4);
worksheet.getRange("E1").setNumberFormat("##.000");
// Display 1.6 as 160.0%.(百分比表示)
worksheet.getRange("F1").setValue(1.6);
worksheet.getRange("F1").setNumberFormat("0.0%");
// Display 4321 as $4,321.00.(井号表示)
worksheet.getRange("G1").setValue(4321);
worksheet.getRange("G1").setNumberFormat("$#,##0.00");
// Display 8.75 as 8 3/4.(分数表示)
worksheet.getRange("H1").setValue(8.75);
worksheet.getRange("H1").setNumberFormat("# ?/?");
// Save to an excel file
workbook.save("NumberFormats.xlsx");
8 回答6k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答4.1k 阅读
3 回答2.3k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
如果你说的是通过java编辑excel,使单元格中本来显示为百分比的数值显示为数字(即去掉百分号并将数值除100),可以给单元格设置格式
在apache POI中可以这样写
其他操作excel的库也差不太多。这样做的前提是你的excel文件中,单元格的值确实是数值而不是字符串。
如果你问的是java怎么将一个符合"^-?(?!0\d)\d+(\.\d+)?%$"的字符串转换为double类型或BigDecimal类型的变量,那么可以先通过正则验证字符串的有效性,然后用BigDecimal类从字符串中构造一个对象。
鉴于你给的信息太少了,建议还是先丰富下问题吧