在我的java类中,我声明的单元格如下:
HSSFCell cell = null;
我在很多地方使用这个单元格来创建一个单元格并设置值和样式。如:
cell = row.createCell(1);
cell.setCellValue("1234.00");
setCellStyle(currency, cell, workbook);
cell = row.createCell(2);
setCellValue("2445.00");
现在,令人惊讶的是,第一个单元格的数据格式被应用到第二个单元格。有人知道吗?我希望第二牢房的风格是无。第一个单元格的样式应该是setCellStyle()方法应用的数据格式。但是,实际上我得到的是setCellStyle()方法应用的数据格式的两个单元格值。
setCellStyle()方法:
public void setCellStyle(String currency, HSSFCell cell, HSSFWorkbook workbook){
HSSFCellStyle cellStyle = cell.getCellStyle();//I am using cell.getStyle() because the default cell style is not null for a HSSFCell
HSSFDataFormat dataFormat = workbook.createDataFormat();
if("GBP".equalsIgnoreCase(currency)){
cellStyle.setDataFormat(dataFormat.getFormat("[$£-809]#,##0_);[Red]([$£-809]#,##0)"));
}else (){
cellStyle.setDataFormat(dataFormat.getFormat("$#,##0_);[Red]($#,##0)"));
}
}
现在您已经更新了文章,展示了setCellStyle
方法,我可以看到问题所在了。每个单元格
都以默认的CellStyle
开头,并且它们都共享相同的默认CellStyle
。当您为第一个单元格
调用SetCellStyle
时,您正在更改所有单元格共享的默认CellStyle
。这意味着您创建的任何其他单元格,如果您没有设置CellStyle
则可以进行更改。此外,在其他任何时候调用自己的setCellStyle
时,它都将再次更改默认单元格样式。
相反,使用工作簿
的CreateCellStyle
方法,创建一个新的CellStyle
,只有该单元格
才具有该新的CellStyle
。
HSSFCellStyle cellStyle = workbook.createCellStyle();
如果您打算将多个单元格设置为相同的单元格样式,那么您应该重用CellStyle
对象。
从工作簿中创建一个新的单元格样式是很重要的,否则,您可能会修改内置样式,并且不仅影响该单元格,还影响其他单元格。
我无法将此行的样式设置为: 它给我的错误是“无法在基元类型void上调用setCellValue(String)”。这种情况下的错误是什么?我如何在单行代码中实现所有3个目标?
我正在尝试创建一个DFS生成的迷宫。我首先制作了一个有4行(顶部、右侧、底部和左侧)的对象。然后我将这些线绘制到Maze上。我的问题是大多数单元格看起来都很好,但是的左侧和顶部都有粗线,我不知道如何使它成为一个常规网格。 这是我的单元格,我在这里创建行: 是单元格的宽度,是高度。 这是我的,我在其中画线: 我很感激能得到的任何帮助。 运行时,我的网格如下所示:
我想要的是让第一个textField更靠近第一个jlabel,在第一个textField和第二个jlabel之间有一些空间,像这样: JLabel:JTEXTFIELD-----(spaceeee)-------JLabel:JTEXTFIELD 但我所改变的一切都不能接近我想要的,你看:
我的excel工作表中有两个单元格,其中一个单元格包含如下字符串: 而另一个单元格有欧元货币,例如: 现在我想复制这两个值,即“总额”和“223.463.687€”,并将其复制到第三个单元格中。我使用的公式是这样的: 我得到以下结果: 但是我应该: 注: 货币的格式是德语格式,意思是“.”(小数点)和“,”(昏迷)扮演相反的角色。在德语格式中,“,”是小数点,在英语中是“。”。
我正在使用Apache POI将数据导出到一个.xlsx文件,我想对文件中包含的一些行和单元格设置样式。 我使用XSSF,因为该文件将在Excel2007+中读取。
在谷歌搜索StackOverflow之后,我还没有找到与这个问题相关的地方。目前我可以将空白单元格读取为空,但一次只能读取一个单元格。所以我必须写这样的东西: 这对我来说不太好,因为我对重复感到不满。我们可以设置返回?