java导出成Excel的方法(需要jxl.jar包)

时间:2023-01-02 09:14:32
import java.io.File;
import java.sql.ResultSet;


import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;


import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Shell;


public class Export2Excel {


    public Export2Excel(Shell shell, String[] coloumNames, ResultSet rSet,
            String sheetName) {
        FileDialog fileDialog = new FileDialog(shell, SWT.NONE);
        fileDialog.setFilterExtensions(new String[]{"*.xls"});
        fileDialog.setText("文件另存为");
        fileDialog.setFileName("temp.xls");
        fileDialog.open();
        String path = fileDialog.getFilterPath();
        String fileName = fileDialog.getFileName();
        try {
            WritableWorkbook book = Workbook.createWorkbook((new File(path
                    + "\\" + fileName)));
            WritableSheet sheet = book.createSheet(sheetName, 0);
            for (int i = 0; i < coloumNames.length; i++) {
                sheet.setColumnView(100, 400);
                Label label = new Label(i, 0, coloumNames[i]);
                sheet.addCell(label);
            }
            int i = 0;
            while (rSet.next()) {
                i = i + 1;
                Label label1A = new Label(0, i, rSet.getRow() + "");
                sheet.addCell(label1A);
                for (int j = 0; j < coloumNames.length; j++) {
                    System.out.println("j =" + j);
                    if (j == 0) {
                        Label label = new Label(j, i, rSet.getRow() + "");
                        sheet.addCell(label);
                    } else {
                        Label label = new Label(j, i, rSet.getString(j));
                        sheet.addCell(label);
                    }
                }
            }
            book.write();
            book.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}