java ExcelUtils 动态导入并纵向合并相同数据
时间: 2024-02-17 20:18:15 浏览: 104
你可以使用Java的Apache POI库来操作Excel文件,实现动态导入并纵向合并相同数据。下面是一个示例代码:
```java
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class ExcelUtils {
public static void main(String[] args) {
String filePath = "path_to_your_excel_file.xlsx";
String sheetName = "Sheet1";
try (FileInputStream fis = new FileInputStream(filePath);
Workbook workbook = new XSSFWorkbook(fis)) {
Sheet sheet = workbook.getSheet(sheetName);
Map<String, Integer> dataMap = new HashMap<>();
// 逐行读取Excel数据并进行合并
for (Row row : sheet) {
Cell cell = row.getCell(0);
String data = cell.getStringCellValue();
if (dataMap.containsKey(data)) {
int rowNum = dataMap.get(data);
Row existingRow = sheet.getRow(rowNum);
Cell existingCell = existingRow.getCell(1);
// 将数据合并到已存在的单元格中
String existingData = existingCell.getStringCellValue();
existingCell.setCellValue(existingData + ", " + data);
} else {
dataMap.put(data, row.getRowNum());
}
}
// 保存修改后的Excel文件
try (FileOutputStream fos = new FileOutputStream(filePath)) {
workbook.write(fos);
}
System.out.println("数据导入并合并成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
请确保在运行代码前更改`filePath`变量为你的Excel文件的路径,`sheetName`变量为你要操作的工作表名称。这段代码会读取Excel文件中的数据,并将相同数据进行纵向合并。最后,它会将修改后的数据保存回原始的Excel文件中。
注意:这段代码假设你的Excel文件是以`.xlsx`格式保存的。如果是`.xls`格式,请将`XSSFWorkbook`替换为`HSSFWorkbook`。
阅读全文
相关推荐















