首先导入JXL相应的包jxl.jar,然后把下面的类复制黏贴进去运行就OK了。
package com.junit.test; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import junit.framework.TestCase; import jxl.HeaderFooter; import jxl.SheetSettings; import jxl.Workbook; import jxl.format.Alignment; import jxl.format.VerticalAlignment; import jxl.read.biff.BiffException; import jxl.write.Label; import jxl.write.WritableCellFormat; import jxl.write.WritableFont; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; import jxl.write.biff.RowsExceededException; import org.junit.Test; /** * 读写Excel文件工具类 * * * @author THJ * */ public class ExcelFile { private String Title; private List<String> Header; private List<List<String>> Data; private WritableWorkbook workbook; private WritableSheet wsheet; private HeaderFooter pageHeader; private HeaderFooter pageFooter; private WritableFont titleFont; private WritableCellFormat titleFormat; private WritableFont headerFont; private WritableCellFormat headerFormat; { // 设置打印页头 pageHeader = new HeaderFooter(); pageHeader.getLeft().appendDate(); pageHeader.getLeft().append(" "); pageHeader.getLeft().appendTime(); pageHeader.getCentre().appendWorkSheetName(); pageHeader.getRight().append("左岸风度物业管理"); // 设置打印页脚 pageFooter = new HeaderFooter(); pageFooter.getCentre().appendPageNumber(); pageFooter.getCentre().append("/"); pageFooter.getCentre().appendTotalPages(); // 设置标题 titleFont = new WritableFont(WritableFont.createFont("黑体"), 32, WritableFont.BOLD); titleFormat = new WritableCellFormat(titleFont); try { titleFormat.setAlignment(Alignment.CENTRE); titleFormat.setVerticalAlignment(VerticalAlignment.CENTRE); } catch (WriteException e) { e.printStackTrace(); } // 创建表头样式 headerFont = new WritableFont(WritableFont.createFont("宋体"), 14, WritableFont.BOLD); headerFormat = new WritableCellFormat(headerFont); try { headerFormat.setWrap(true); } catch (WriteException e) { e.printStackTrace(); } } // init block public ExcelFile() { }; public ExcelFile(String title, List<String> header, List<List<String>> data) { super(); Title = title; Header = header; Data = data; } public boolean save(File fileName) throws IOException { // 创建WorkBook 和 Sheet workbook = Workbook.createWorkbook(fileName); wsheet = workbook.createSheet(this.Title, workbook.getNumberOfSheets()); // 设置工作表全局设定 SheetSettings sheetSettings = wsheet.getSettings(); sheetSettings.setHeader(this.pageHeader); sheetSettings.setFooter(this.pageFooter); // sheetSettings.setDefaultRowHeight(500); sheetSettings.setFitToPages(true); sheetSettings.setPrintHeaders(false); sheetSettings.setDisplayZeroValues(true); sheetSettings.setPrintGridLines(true); sheetSettings.setFitWidth(1); try { // 标题文字 Label nc1 = new Label(0, 0, this.Title, titleFormat); // 合并单元格 wsheet.mergeCells(0, 0, this.Header.size() - 1, 0); // 插入标题单元格 wsheet.addCell(nc1); // 写入表头 for (int i = 0; i < this.Header.size(); ++i) { Label nc = new Label(i, 1, this.Header.get(i), headerFormat); wsheet.addCell(nc); } // 加入数据 for (int i = 0; i < this.Data.size(); ++i) { for (int j = 0; j < this.Data.get(i).size(); ++j) { Label nc = new Label(j, i + 2, this.Data.get(i).get(j)); wsheet.addCell(nc); } } workbook.write(); workbook.close(); } catch (RowsExceededException e) { e.printStackTrace(); return false; } catch (WriteException e) { e.printStackTrace(); return false; } return true; } @Test public void test_class() { // 默认测试数据 File file = new File("d:/test2.xls"); String title = "2009年4月缴费详单"; List<String> header = new ArrayList<String>(); for (int i = 0; i < 10; ++i) { header.add("header" + i); } List<List<String>> data = new ArrayList<List<String>>(); for (int i = 0; i < 10; ++i) { List<String> inlist = new ArrayList<String>(); for (int j = 0; j < 10; ++j) { inlist.add("data(" + i + "," + j + ")"); } data.add(inlist); } ExcelFile ef = new ExcelFile(title, header, data); try { ef.save(file); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) throws BiffException, IOException, RowsExceededException, WriteException { // 默认测试数据 File file = new File("d:/test2.xls"); String title = "2009年4月缴费详单"; List<String> header = new ArrayList<String>(); for (int i = 0; i < 10; ++i) { header.add("header" + i); } List<List<String>> data = new ArrayList<List<String>>(); for (int i = 0; i < 10; ++i) { List<String> inlist = new ArrayList<String>(); for (int j = 0; j < 10; ++j) { inlist.add("data(" + i + "," + j + ")"); } data.add(inlist); } ExcelFile ef = new ExcelFile(title, header, data); try { ef.save(file); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * @return the title */ public String getTitle() { return Title; } /** * @return the header */ public List<String> getHeader() { return Header; } /** * @return the data */ public List<List<String>> getData() { return Data; } /** * @return the workbook */ public WritableWorkbook getWorkbook() { return workbook; } /** * @return the wsheet */ public WritableSheet getWsheet() { return wsheet; } /** * @return the pageHeader */ public HeaderFooter getPageHeader() { return pageHeader; } /** * @return the pageFooter */ public HeaderFooter getPageFooter() { return pageFooter; } /** * @return the titleFont */ public WritableFont getTitleFont() { return titleFont; } /** * @return the titleFormat */ public WritableCellFormat getTitleFormat() { return titleFormat; } /** * @return the headerFont */ public WritableFont getHeaderFont() { return headerFont; } /** * @return the headerFormat */ public WritableCellFormat getHeaderFormat() { return headerFormat; } /** * @param title * the title to set */ public void setTitle(String title) { Title = title; } /** * @param header * the header to set */ public void setHeader(List<String> header) { Header = header; } /** * @param data * the data to set */ public void setData(List<List<String>> data) { Data = data; } /** * @param workbook * the workbook to set */ public void setWorkbook(WritableWorkbook workbook) { this.workbook = workbook; } /** * @param wsheet * the wsheet to set */ public void setWsheet(WritableSheet wsheet) { this.wsheet = wsheet; } /** * @param pageHeader * the pageHeader to set */ public void setPageHeader(HeaderFooter pageHeader) { this.pageHeader = pageHeader; } /** * @param pageFooter * the pageFooter to set */ public void setPageFooter(HeaderFooter pageFooter) { this.pageFooter = pageFooter; } /** * @param titleFont * the titleFont to set */ public void setTitleFont(WritableFont titleFont) { this.titleFont = titleFont; } /** * @param titleFormat * the titleFormat to set */ public void setTitleFormat(WritableCellFormat titleFormat) { this.titleFormat = titleFormat; } /** * @param headerFont * the headerFont to set */ public void setHeaderFont(WritableFont headerFont) { this.headerFont = headerFont; } /** * @param headerFormat * the headerFormat to set */ public void setHeaderFormat(WritableCellFormat headerFormat) { this.headerFormat = headerFormat; } }