如何删除迭代器循环并允许cellDateType在xlsx java中工作?
大家好,各位专家, 目前我对迭代器循环有一些问题。我需要删除它,以便我的数据显示在xlsx excel工作表上,但我不确定如何删除它,以便我的代码不会出错。我怀疑这个错误可能在迭代器循环中。 现在,这是我的代码和一个图像链接,它看起来像现在 excel工作表中的数据之间不应该有空格,但显然有空格。第一列中没有任何数据,因为我没有任何数据输入网站。所以第一列可以为空如何删除迭代器循环并允许cellDateType在xlsx java中工作?,java,excel,iterator,apache-poi,xlsx,Java,Excel,Iterator,Apache Poi,Xlsx,大家好,各位专家, 目前我对迭代器循环有一些问题。我需要删除它,以便我的数据显示在xlsx excel工作表上,但我不确定如何删除它,以便我的代码不会出错。我怀疑这个错误可能在迭代器循环中。 现在,这是我的代码和一个图像链接,它看起来像现在 excel工作表中的数据之间不应该有空格,但显然有空格。第一列中没有任何数据,因为我没有任何数据输入网站。所以第一列可以为空 int r = 3; for (Iterator iter = Cells.iterator();ite
int r = 3;
for (Iterator iter = Cells.iterator();iter.hasNext();) {
Object[] _o = (Object[]) iter.next();
currentRow = s.createRow(r);
for(int colNum = 0; colNum < _col_cnt; colNum++){
XSSFCell currentCell =currentRow.createCell(colNum);
if (CellDataType[c].equals("STRING")
|| CellDataType[c].equals("VARCHAR")) {
String _l = (String) _o[colNum];
if (_l != null) {
currentCell.setCellValue(_l);
System.out.println("Data: " + _l);
}
}
intr=3;
for(迭代器iter=Cells.Iterator();iter.hasNext();){
Object[]_o=(Object[])iter.next();
currentRow=s.createRow(r);
for(int colNum=0;colNum<\u col\u cnt;colNum++){
XSSFCell currentCell=currentRow.createCell(colNum);
if(CellDataType[c].equals(“字符串”)
||CellDataType[c]。等于(“VARCHAR”)){
字符串_l=(字符串)_o[colNum];
如果(_l!=null){
currentCell.setCellValue(_l);
System.out.println(“数据:”+_l);
}
}
硬代码(测试):
intr=3;
for(迭代器iter=Cells.Iterator();iter.hasNext();){
Object[]_o=(Object[])iter.next();
currentRow=s.createRow(r);
for(int colNum=0;colNum<\u col\u cnt;colNum++){
XSSFCell currentCell=currentRow.createCell(colNum);
currentCell.setCellValue(“Hello”);
你的问题不在于你在这里展示的代码,而在于你在前面的问题中展示的代码。两个建议
- 如果您正确使用缩进,并将花括号对齐到它们应该在的位置,您几乎会立即看到错误
- 如果使用调试器逐步检查代码,并查看
的值,您会立即发现问题r
您的行
r++;
在内部循环内。这意味着它在外部循环的每次迭代中都会递增3次。您需要将r++;
向下移动一行,这样它就在内部循环外,但在外部循环内。这样,它每行只递增一次,这就是您所需要的。因此您正在写入将java中的某些内容转换成xslx文件,字符串周围会出现空格?很酷。你能将问题分为两部分吗?首先,你能在java代码中硬编码一些内容并将其写入xlsx。让我们知道这是否有效吗?@Hirak我实际上是从一个网站获得这些数据。我必须能够使用java并允许这些数据从要传输到xlsx的网站sheet@Hirak我已编辑硬代码并将其放置在“QN”上我很抱歉,如果它是错误的,硬代码不是你想要看到的,因为我在编码方面真的很弱。这就是现在的样子:你在第二行代码中提到的单元格
对象是什么?天哪!代码的定位真的很重要!我一直认为这是for循环…谢谢你大卫!!没问题,祝你好运。
int r = 3;
for (Iterator iter = Cells.iterator();iter.hasNext();) {
Object[] _o = (Object[]) iter.next();
currentRow = s.createRow(r);
for(int colNum = 0; colNum < _col_cnt; colNum++){
XSSFCell currentCell =currentRow.createCell(colNum);
currentCell.setCellValue("Hello");