2015-10-12 54 views
1

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

那麼有什麼想法?

回答

1

壞消息:AFAIK excel不能做與A,B,C不同的任何事情。主要原因:列名和行名不包含信息,它只是一個編號。想象一下,你想打印一個包含這些名字的文檔:Excel不會知道格式,也不知道邊界,甚至不是單元格寬度/高度。

您有以下選擇:

  • 使用的MS Access,它使用的數據庫佈局(如字段名作爲列名)
  • 修復的第一行中的視圖,並格式化爲表格標題。 Excel的表格autoformat功能以同樣的方式進行。
+0

不是故事的全部。 (1)可以將字母改爲數字(R1C1參考樣式)或(2)隱藏(取消選中顯示標題)。後者可能適合OP。 – pnuts

+0

@pnuts這就是我的意思是編號。他們只是不是文件的一部分 –

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