📅  最后修改于: 2023-12-03 15:23:24.346000             🧑  作者: Mango
在Java中将Excel文件转换为CSV格式文件的处理,目的往往是实现不同平台间数据格式的转换。本文将介绍如何使用Apache POI库来读取Excel文件,并将Excel文件中的数据转换为CSV格式文件。
CSV(Comma-Separated Values) 文件是一种常见的、简单、类似于Excel表格的文件格式。CSV文件中的每一行代表一条记录,每条记录中的各个字段之间可以用逗号(,)或其他指定的分隔符隔开,以实现各个系统之间的数据交互。
如下示例是一个CSV文件的样式:
Name, Gender, Age
Tom, Male, 25
Lucy, Female, 28
Apache POI 是一个用于读写Microsoft Office格式文档的开源Java库。在本文中,我们需要使用poi-ooxml库,该库提供了读取Microsoft Office格式文件(xlsx,docx,pptx)的解析器。
首先,在Maven中添加以下依赖:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.0</version>
</dependency>
使用Apache POI的方式就是首先实例化工作薄Workbook
,然后获取工作表Sheet
,最后读取单元格的数据。
try (FileInputStream inputStream = new FileInputStream(new File("path/to/excel/file"))) {
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet sheet = workbook.getSheetAt(0);
for (Row row : sheet) {
for (Cell cell : row) {
String value = cell.getStringCellValue();
// Do something with the value
}
}
}
CSV格式文件中的数据需要被格式化,并且字段之间需要添加指定的分隔符。我们可以使用Java中的StringBuilder
类来辅助生成CSV格式的字符串,然后将其写入到文件中。
try (FileOutputStream outputStream = new FileOutputStream(new File("path/to/csv/file"));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream))) {
Workbook workbook = new XSSFWorkbook(new File("path/to/excel/file"));
Sheet sheet = workbook.getSheetAt(0);
for (Row row : sheet) {
StringBuilder sb = new StringBuilder();
for (Cell cell : row) {
String value = cell.getStringCellValue();
sb.append(value).append(",");
}
sb.deleteCharAt(sb.length() - 1);
writer.write(sb.toString());
writer.newLine();
}
}
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;
import java.io.*;
public class ExcelToCsv {
public static void main(String[] args) throws IOException {
try (FileInputStream inputStream = new FileInputStream(new File("path/to/excel/file"));
FileOutputStream outputStream = new FileOutputStream(new File("path/to/csv/file"));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream))) {
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet sheet = workbook.getSheetAt(0);
for (Row row : sheet) {
StringBuilder sb = new StringBuilder();
for (Cell cell : row) {
String value = cell.getStringCellValue();
sb.append(value).append(",");
}
sb.deleteCharAt(sb.length() - 1);
writer.write(sb.toString());
writer.newLine();
}
}
}
}
本文介绍了如何使用Apache POI库来读取Excel文件,并将数据转换为CSV格式文件。
具体来说,我们需要首先添加maven依赖,然后使用XSSFWorkbook解析器读取Excel数据,将其格式化为CSV格式字符串并写入到文件中。
如果您遇到了Excel文件的编码问题,请使用InputStreamReader
指定编码格式来读取文件。