从数组中读取并通过POI创建2003格式的.xls工作簿

时间:2016-02-09 17:37:27

标签: java apache-poi

我是java开发人员,我想将.csv文件转换为.xls 2003格式,以便将我的csv转换为.xls文件,我的.csv文件的结构就像

REC_STATUS,TRADE_ID,SETTLEMENT_DATE,TRADE_EFFECTIVE_DATE,PAYMENT_TYPE,VERSION,BREAK_DOWN_BUCKET,CAUSE,NUM_CASHFLOWS_AFFECTED,PROFILE
Found only in File :B,178942690,01-Feb-16,03-Dec-14,"Coupon",5,NOISY_BREAK_BUCKET,REC_TOOL_ISSUE_PAYMENT_DIRECTION_MISMATCH | REC_TOOL_ISSUE_NOTIONAL_MISMATCH | TRADE_VERSION,1,AVS Offshore
Found only in File :B,197728700,Various,21-Dec-15,"Coupon,(x20)",2,ACTUAL DATA BREAK BUCKET,ACTUAL_DATA_BREAK,20,AVS Offshore

现在我已使用open csv解析器(http://opencsv.sourceforge.net/)进行此操作并编码如下所示

CSVReader reader = new CSVReader(
                new FileReader("c:/xxx.csv"), ',', '"');
 // Read all rows at once
 List<String[]> allRows = reader.readAll();

现在请在阅读后告知我想以类似的方式创建一个.xls工作簿,上面创建了.csv所以我必须首先阅读这些值,我必须阅读标题然后相应的值,并且必须将它们写入。 xls 2003格式请告诉我如何实现这一点我正在使用POI 3.10版本

请各位建议如何将数组内容放入工作簿中

enter code here

1 个答案:

答案 0 :(得分:0)

class Handle
{
 public static void data(List list,String path)
 {       
    Workbook wb = new XSSFWorkbook();
    HSSFSheet sheet = (HSSFSheet) wb.createSheet("Sheet");
    int i=0;
    while(i<list.size())
    {
       HSSFRow row = sheet.createRow(i);
       String [] data =  (String[]) list.get(i);
       int j=0;
       while(j<data.length)
       {
           HSSFCell cell = row.createCell(j);
           cell.setCellValue(data[j]);
           j++;
       }
       i++;
     }
     FileOutputStream fos = new FileOutputStream(path+".xls");
     wb.write(fos);
     fos.flush();
     fos.close();
     wb.close();                        
   }
}

正如@gagravarr所说,你可以使用常见的SS类来处理&#39; .xls&#39;&#39;&#39;和&#39; .xlsx&#39;&#39;格式与相同的代码..