【问题标题】:How to set column names如何设置列名
【发布时间】:2026-01-21 11:55:01
【问题描述】:
我正在为我的应用程序使用 Apache POI,我想设置列名而不是“A、B、C...”
我使用以下代码,但它只在第一行添加数据:
public void createHeaderRow(HSSFSheet sheet, List<String> headerRowList) {
HSSFRow headerRow = sheet.createRow(0);
for(int i=0;i<headerRowList.size();i++){
HSSFCell cell = headerRow.createCell((short) i);
cell.setCellValue(headerRowList.get(i).toString());
}
}
有什么想法吗?
【问题讨论】:
标签:
java
excel
apache-poi
【解决方案1】:
坏消息:AFAIK excel 不能做任何不同于 A、B、C 的事情。主要原因:列名和行名不包含信息,它只是一个编号。假设您要打印包含这些名称的文档:Excel 不知道格式,也不知道边框,甚至不知道单元格的宽度/高度。
您有以下选择:
- 使用使用数据库布局的 MS Access(例如,字段名称作为列名称)
- 修复视图中的第一行并将其格式化为表格标题。 Excel 的表格自动格式化功能也是如此。
【解决方案2】:
例如:
JFileChooser save = new JFileChooser();
save.setDialogTitle("Save file");
int chooise = save.showSaveDialog(null);
File file = null;
if(chooise == JFileChooser.APPROVE_OPTION){
file = save.getSelectedFile();
}
FileOutputStream fileOut;
fileOut = new FileOutputStream(file.getAbsolutePath() + ".xls");
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet worksheet = workbook.createSheet("Workbook");
Row row1 = worksheet.createRow((short)0);
//Set columt names
row1.createCell(0).setCellValue("Column Name 0");
row1.createCell(1).setCellValue("Column Name 1");
等等