java中excel行转列
时间: 2023-10-05 10:12:46 浏览: 88
在Java中,可以使用Apache POI库来读取和写入Excel文件。以下是一种将Excel中的行转换为列的方法:
```java
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Iterator;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelRowToColumn {
public static void main(String[] args) throws Exception {
// 读取Excel文件
FileInputStream file = new FileInputStream(new File("input.xlsx"));
// 创建工作簿对象
XSSFWorkbook workbook = new XSSFWorkbook(file);
// 获取第一个工作表
Iterator<Row> rowIterator = workbook.getSheetAt(0).iterator();
// 创建新的工作表
XSSFWorkbook newWorkbook = new XSSFWorkbook();
newWorkbook.createSheet("output");
int rowIndex = 0;
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator<Cell> cellIterator = row.cellIterator();
int columnIndex = 0;
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
// 创建新的行,如果需要
Row newRow = newWorkbook.getSheet("output").getRow(columnIndex);
if (newRow == null) {
newRow = newWorkbook.getSheet("output").createRow(columnIndex);
}
// 创建新的单元格
Cell newCell = newRow.createCell(rowIndex);
// 将旧单元格的值复制到新单元格
newCell.setCellValue(cell.getStringCellValue());
columnIndex++;
}
rowIndex++;
}
// 保存新的Excel文件
FileOutputStream outputStream = new FileOutputStream("output.xlsx");
newWorkbook.write(outputStream);
newWorkbook.close();
outputStream.close();
System.out.println("Excel行转列成功!");
}
}
```
此代码将 `input.xlsx` 文件中的第一个工作表中的所有行转换为列,并将结果保存在 `output.xlsx` 文件中的名为 `output` 的工作表中。
阅读全文