gpt4 book ai didi

java - 使用 Apache POI 在 Java 中读取/写入 Excel 文件的问题

转载 作者:行者123 更新时间:2023-12-01 22:54:59 24 4
gpt4 key购买 nike

大家好,我是 java poi 库的新手,我尝试了所有的运气来学习这个库,但仍然没有运气

我想要这个输出

Excel1.xls 有此数据

ZIP CODE | PLACE | DATE
211

我想复制所有第一行数据。

ZIP CODE | PLACE | DATE

并将其放置到另一张纸上

这是我编写的代码

public static void main(String[] args) throws IOException{

try {
FileInputStream file = new FileInputStream(new File("d:\\input.xls"));

HSSFWorkbook workbook = new HSSFWorkbook(file);
HSSFSheet sheet = workbook.getSheetAt(0);
HSSFSheet zip1 = workbook.createSheet("ZIP CODE 1");


for(Row row : sheet){
int i=0;

for(Cell cell : row){

cell.setCellType(Cell.CELL_TYPE_STRING);
System.out.print(cell.getStringCellValue() + "\t");
String a = cell.getStringCellValue();

cell = zip1.createRow(i).createCell(i);

i++;
cell.setCellValue(a);
}
break;

}

file.close();
FileOutputStream outFile =new FileOutputStream(new File("d:\\output.xls"));
workbook.write(outFile);
outFile.close();

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

最佳答案

发现问题

  1. 对于 .xlsx 文件 -> HSSFWorkbook 应为 XSSFWorkbook

  2. 循环。您不想循环每一行,而只需要第一行。只需循环列

  3. 不要每次要写入单元格时都创建一行。仅创建一次新行。

工作示例:

try {
FileInputStream file = new FileInputStream(new File(
"C:\\path\\Book1.xlsx"));

XSSFWorkbook workbook = new XSSFWorkbook(file);
XSSFSheet sheet = workbook.getSheetAt(0);
XSSFSheet zip1 = workbook.createSheet("ZIP CODE 1");

Row readFirstRow = sheet.getRow(0);
Row writeFirstRow = zip1.createRow(0);

for (Cell cell : readFirstRow) {

cell.setCellType(Cell.CELL_TYPE_STRING);
String a = cell.getStringCellValue();

cell = writeFirstRow.createCell(cell.getColumnIndex());
cell.setCellValue(a);
}

file.close();
FileOutputStream outFile = new FileOutputStream(new File(
"C:\\path\\BookOut.xlsx"));
workbook.write(outFile);
outFile.close();

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

关于java - 使用 Apache POI 在 Java 中读取/写入 Excel 文件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24228129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com