Java获取Excel中的数据并把数据拆分写到新的Excel中
时间: 2023-08-13 10:08:17 浏览: 240
Java处理Excel数据
可以使用 Apache POI 库来读取和写入 Excel 文件。以下是一个示例代码,可以读取 Excel 文件中的数据并把数据拆分写入新的 Excel 文件中:
```java
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
public class ExcelSplitter {
public static void main(String[] args) throws IOException {
// 读取源 Excel 文件
FileInputStream inputWorkbook = new FileInputStream("源文件.xlsx");
Workbook workbook = WorkbookFactory.create(inputWorkbook);
// 获取源 Excel 文件中的第一个 sheet
Sheet sheet = workbook.getSheetAt(0);
// 创建新的 Excel 文件
Workbook newWorkbook = WorkbookFactory.create(true);
Sheet newSheet = newWorkbook.createSheet("新文件");
// 定义拆分后每个 sheet 中的行数
int rowsPerSheet = 10;
int rowIndex = 0;
int sheetIndex = 0;
// 遍历源 Excel 文件中的每一行
for (Row row : sheet) {
// 如果当前 sheet 中的行数已经达到上限,则创建一个新的 sheet
if (rowIndex % rowsPerSheet == 0) {
newSheet = newWorkbook.createSheet("新文件 " + (++sheetIndex));
rowIndex = 0;
}
// 复制当前行到新的 sheet 中
Row newRow = newSheet.createRow(rowIndex++);
int cellIndex = 0;
for (Cell cell : row) {
Cell newCell = newRow.createCell(cellIndex++);
newCell.setCellValue(cell.getStringCellValue());
}
}
// 把新的 Excel 文件保存到本地
FileOutputStream outputFile = new FileOutputStream("新文件.xlsx");
newWorkbook.write(outputFile);
outputFile.close();
newWorkbook.close();
inputWorkbook.close();
workbook.close();
}
}
```
这个示例代码中,我们首先读取源 Excel 文件,并获取其中的第一个 sheet。然后,我们创建一个新的 Excel 文件,并定义每个 sheet 中的行数。接下来,我们遍历源 Excel 文件中的每一行,并把行复制到新的 sheet 中。如果当前 sheet 中的行数已经达到上限,则创建一个新的 sheet。最后,我们把新的 Excel 文件保存到本地。
阅读全文