下面是一个使用Apache POI库将用逗号分隔的数字转换为十进制数的Excel单元格的示例代码:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
public class ExcelConverter {
public static void main(String[] args) {
// 创建工作簿和工作表
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
// 创建要转换的数据
String[] numbers = {"1,234.56", "7,890.12", "3,456.78"};
// 创建单元格样式,用于设置数据格式
CellStyle style = workbook.createCellStyle();
DataFormat format = workbook.createDataFormat();
style.setDataFormat(format.getFormat("#,##0.00"));
// 将数据写入单元格
int rowIdx = 0;
for (String number : numbers) {
Row row = sheet.createRow(rowIdx++);
Cell cell = row.createCell(0);
cell.setCellValue(Double.parseDouble(number.replace(",", "")));
cell.setCellStyle(style);
}
// 保存工作簿到文件
try {
FileOutputStream outputStream = new FileOutputStream("output.xlsx");
workbook.write(outputStream);
workbook.close();
outputStream.close();
System.out.println("转换完成。");
} catch (IOException e) {
e.printStackTrace();
}
}
}
这段代码使用Apache POI库创建了一个Excel工作簿和一个工作表。然后,创建了要转换的数据,并创建了一个单元格样式,用于设置数据格式。接下来,将数据写入单元格,并保存工作簿到文件中。在写入单元格时,使用Double.parseDouble
方法将包含逗号的字符串转换为十进制数,并使用setCellValue
方法将其设置到单元格中。最后,通过调用workbook.write
方法将工作簿保存到文件中。
请注意,这段代码使用的是Apache POI的XSSFWorkbook类,用于创建一个XLSX格式的工作簿。如果需要创建一个XLS格式的工作簿,可以使用HSSFWorkbook类。另外,还需要确保在项目中引入了正确的Apache POI库的依赖。