Java xlsx批量转换csv
时间: 2023-08-09 22:04:49 浏览: 281
你可以使用 Apache POI 库来读取 xlsx 文件,然后将数据写入 csv 文件中。
以下是一个简单的 Java 代码示例,可以将指定目录下的所有 xlsx 文件批量转换为 csv 文件:
```java
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
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.xssf.usermodel.XSSFWorkbook;
public class XlsxToCsvConverter {
public static void main(String[] args) throws IOException {
String inputFolder = "input_folder_path";
String outputFolder = "output_folder_path";
File folder = new File(inputFolder);
File[] files = folder.listFiles((dir, name) -> name.endsWith(".xlsx"));
for (File file : files) {
FileInputStream inputStream = new FileInputStream(file);
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet sheet = workbook.getSheetAt(0);
FileWriter csvWriter = new FileWriter(outputFolder + "/" + file.getName().replace(".xlsx", ".csv"));
for (Row row : sheet) {
StringBuilder sb = new StringBuilder();
for (Cell cell : row) {
switch (cell.getCellType()) {
case STRING:
sb.append(cell.getStringCellValue());
break;
case NUMERIC:
sb.append(cell.getNumericCellValue());
break;
case BOOLEAN:
sb.append(cell.getBooleanCellValue());
break;
default:
break;
}
sb.append(",");
}
sb.deleteCharAt(sb.length() - 1);
sb.append("\n");
csvWriter.write(sb.toString());
}
workbook.close();
csvWriter.close();
}
}
}
```
你需要将 `inputFolder` 和 `outputFolder` 替换为你自己的文件夹路径。这个例子假设 xlsx 文件只有一个 sheet,且第一行是标题行。如果你的文件有多个 sheet 或其他要求,请根据需要进行修改。
阅读全文