Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用ApachePOI更改excel中的十进制和千位分隔符_Java_Excel_Apache Poi - Fatal编程技术网

Java 使用ApachePOI更改excel中的十进制和千位分隔符

Java 使用ApachePOI更改excel中的十进制和千位分隔符,java,excel,apache-poi,Java,Excel,Apache Poi,有人知道使用ApachePOI库是否可以更改Microsoft Excel的小数点和千位分隔符吗 我需要在excel中从web应用程序导出一些数据,这些数字的格式取决于用户的一些设置。因此,在导出数据时,数字应该与应用程序页面中的数字完全一致 谢谢Excel中的格式设置通过“工具”>“选项”>“国际”对话框进行控制,并存储在本地首选项中,而不是存储在文件中。所以你不能通过POI控制这一切 我能想到的唯一解决办法是提供文本而不是数字。但它会阻止用户在Excel中进行任何计算。您需要以这种方式设置C

有人知道使用ApachePOI库是否可以更改Microsoft Excel的小数点和千位分隔符吗

我需要在excel中从web应用程序导出一些数据,这些数字的格式取决于用户的一些设置。因此,在导出数据时,数字应该与应用程序页面中的数字完全一致


谢谢

Excel中的格式设置通过“工具”>“选项”>“国际”对话框进行控制,并存储在本地首选项中,而不是存储在文件中。所以你不能通过POI控制这一切


我能想到的唯一解决办法是提供文本而不是数字。但它会阻止用户在Excel中进行任何计算。

您需要以这种方式设置CellStyle数据格式(如果您使用整数并需要千位分隔符)

我想你需要这样的东西:(我没有试过,所以也许你需要修改一下)
,##0.00

请注意:非常重要的是你使用逗号,而不是点。如果您的区域设置正确,您将看到一个点。

只有格式。这意味着此格式是我格式化数字的格式。逗号是一个符号,仅等于千分之一,而点是小数的一部分。您可以使用“#”、“##0.00”或“#”、“##0”并不重要,因为Microsoft Excel有分隔符的本地设置应用于应用程序,而不是文件,您无法通过API覆盖。 请记住,图纸具有预定义的单元样式。单元格仅引用样式。如果更改单元格,则更改此类型的所有单元格

我对单元格的格式也有同样的问题。我想我尝试在XSSFWorkbook上使用“setVBapProject”方法


这不是真的,有一种方法可以设置千位分隔符,尽管很难找到。@Vargan除非通过Excel选项,否则不可能,证明:我的解决方案呢?我测试了它,它工作得很好。@Vargan我测试了它:14447640985302>,###0.00>1444764.10所以基本上,它将1444变成了1444k:)@ErdalG。这可能是因为您使用了“0.00”,这表示另一个分隔符。如果不设置区域设置,这将不起作用。
cellStyle.setDataFormat(creationHelper.createDataFormat().getFormat("#,##0")); 
cell.setCellStyle(cellStyle);