1

私が使用した瓶:dom4j poi-3.8.jar poi-ooxml-3.8.jar poi-ooxml-schemas-3.8.jar xbean.jar

コード :

package org.capgemini.ui;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Vector;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class XSSFWorkBookWriter  {

public void writeWorkBook(Vector table) throws Exception {      

XSSFWorkbook workBook = new XSSFWorkbook();
XSSFSheet sheet = workBook.createSheet();
table=new Vector();
table.add(new String("Howdy"));
table.add(new java.sql.Date(2012,06,20));
table.add(new Double(13.35D));
table.add(new String("Fine"));
table.add(new java.sql.Date(2012,06,20));
table.add(new Double(13.38D));

Iterator rows=table.iterator();
Enumeration rowsOfVector=table.elements();
int totalNoOfRows=table.size()/2;
int currentRow=0;
while (rows.hasNext () && currentRow<totalNoOfRows){
XSSFRow row =  sheet.createRow(currentRow++);               
for (int i = 0; i < 3; i++) {
XSSFCell cell=row.createCell(i);
Object val=rows.next();
if( val instanceof String){
cell.setCellValue(val.toString());
            }
else if(val instanceof Date){
cell.setCellValue((java.sql.Date)val);
            }
else if(val instanceof Double){
cell.setCellValue((Double)val);
}
}
}

FileOutputStream outPutStream = null;
    try {
        outPutStream = new FileOutputStream("D:/Try.xlsx");
        workBook.write(outPutStream);
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (outPutStream != null) {
            try {
                outPutStream.flush();
                outPutStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

public static void main(String[] args) {
    XSSFWorkBookWriter bookWriter=new XSSFWorkBookWriter();
    try {
        bookWriter.writeWorkBook(new Vector());
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

}

エラー ::

org.apache.poi.hssf.dev.BiffViewer$CommandParseException: Biff viewer needs a filename
 at org.apache.poi.hssf.dev.BiffViewer$CommandArgs.parse(BiffViewer.java:333)
 at org.apache.poi.hssf.dev.BiffViewer.main(BiffViewer.java:386)
4

1 に答える 1

0

BiffViewer は HSSF の一部であり、古い .xls ファイル (OLE2 ベース) でのみ機能します。XSSF を使用して .xlsx ファイルを生成していますが、これは別の低レベル形式です。

本当に BiffViewer を使用したい場合 (理由は不明ですが、通常はデバッグでのみ使用されますが、それでも)、XSSF コードを HSSF コードに変更する必要があります。それ以外の場合、XSSF を使用して .xlsx ファイルを生成するつもりだった場合は、HSSF デバッグ ツールを使用できません。.xlsx ファイルの内容を知りたい場合は、それを解凍し (.xlsx は xml ファイルの zip です)、XML を表示します。

于 2012-11-18T22:18:16.893 に答える