如何设置列名

时间:2015-10-12 11:51:06

标签: java excel apache-poi

我正在为我的应用程序使用Apache POI,我想设置列名而不是“A,B,C ...”

enter image description here

我使用以下代码,但它只在第一行添加数据:

 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());
    }
}

所有想法?

2 个答案:

答案 0 :(得分:1)

坏消息:AFAIK excel不能做任何与A,B,C不同的事情。主要原因:专栏和行名称不包含信息,它只是一个编号。想象一下,你想要打印一个包含这些名称的文档:Excel不知道格式化,也不了解边框,甚至不知道单元格的宽度/高度。

您有以下选择:

  • 使用使用数据库布局的MS Access(例如,字段名称作为列名称)
  • 修复视图中的第一行并将其格式化为表格标题。 Excel的表格autoformat功能以相同的方式完成。

答案 1 :(得分:0)

例如:

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");