jexcel导出excel文件的demo
3686 点击·0 回帖
![]() | ![]() | |
![]() | jexcel是java导出excel的一个开源工具包。有的时候需要将数据导到excel文件中以便观看。 需要上网下载jxl.jar 核心代码如下: package test; import java.io.File; import java.io.IOException; import java.util.Calendar; import java.util.Date; import jxl.Cell; import jxl.CellType; import jxl.DateCell; import jxl.LabelCell; import jxl.NumberCell; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; import jxl.write.DateFormat; import jxl.write.DateTime; import jxl.write.Label; import jxl.write.Number; import jxl.write.NumberFormat; import jxl.write.NumberFormats; import jxl.write.WritableCell; 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; public class TutorialMain { /** * WritingSpreadSheet */ public void WritingSpreadSheet() { try { //创建一个WorkBook,即一个Excel文件,文件目录为param0 WritableWorkbook workbook = Workbook.createWorkbook(new File("c:\\output.xls")); //创建一个Sheet,即表单,名字为param0;位置为param1 WritableSheet sheet = workbook.createSheet("First Sheet Name", 0); sheet.setColumnView(0, 30); // 设置列的宽度 sheet.setColumnView(1, 30); // 设置列的宽度 sheet.setColumnView(2, 30); // 设置列的宽度 sheet.setRowView(6, 1000); // 设置行的高度 sheet.setRowView(4, 1000); // 设置行的高度 sheet.setRowView(5, 1000); // 设置行的高度 //创建一个Label,x坐标param0,y坐标param1,名字为param2 Label label = new Label(0, 2, "A label record"); //将该Label sheet.addCell(label); //创建一个Number,x坐标param0,y坐标param1,数值为param2 Number number = new Number(3, 4, 3.1459); sheet.addCell(number); /* * 格式化信息 */ // Create a cell format for Arial 10 point font WritableFont arial10font = new WritableFont(WritableFont.ARIAL, 10); WritableCellFormat arial10format = new WritableCellFormat (arial10font); // Create the label, specifying content and format Label label2 = new Label(1,0, "Arial 10 point label", arial10format); sheet.addCell(label2); Label label3 = new Label(2, 0, "Another Arial 10 point label", arial10format); sheet.addCell(label3); // Create a cell format for Times 16, bold and italic WritableFont times16font = new WritableFont(WritableFont.TIMES, 16, WritableFont.BOLD, true); WritableCellFormat times16format = new WritableCellFormat (times16font); // Create the label, specifying content and format Label label4 = new Label(3,0, "Times 16 bold italic label", times16format); times16format.setBackground(jxl.format.Colour.BLUE); times16format.setAlignment(jxl.format.Alignment.CENTRE); sheet.addCell(label4); /* * 格式化数值 */ WritableCellFormat integerFormat = new WritableCellFormat (NumberFormats.INTEGER); Number number2 = new Number(0, 4, 3.141519, integerFormat); sheet.addCell(number2); WritableCellFormat floatFormat = new WritableCellFormat (NumberFormats.FLOAT); Number number3 = new Number(1, 4, 3.141519, floatFormat); sheet.addCell(number3); NumberFormat fivedps = new NumberFormat("#.#####"); WritableCellFormat fivedpsFormat = new WritableCellFormat(fivedps); Number number4 = new Number(2, 4, 3.141519, fivedpsFormat); sheet.addCell(number4); WritableCellFormat fivedpsFontFormat = new WritableCellFormat (times16font, fivedps); Number number5 = new Number(3, 4, 3.141519, fivedpsFontFormat); sheet.addCell(number5); /* * Formatting Dates */ // Get the current date and time from the Calendar object Date now = Calendar.getInstance().getTime(); DateFormat customDateFormat = new DateFormat ("dd MM yyyy hh:mms"); WritableCellFormat dateFormat = new WritableCellFormat (customDateFormat); DateTime dateCell = new DateTime(0, 6, now, dateFormat); sheet.addCell(dateCell); /* * 合并单元格 */ WritableSheet sheet1 = workbook.createSheet("First Sheet", 1); sheet1.mergeCells(0, 0, 1, 1); // All sheets and cells added. Now write out the workbook workbook.write(); workbook.close(); System.out.println("创建成功.."); } catch (IOException e) { // TODO Auto-generated catch block System.out.println("创建失败.."); e.printStackTrace(); } catch (RowsExceededException e) { // sheet.addCell Exception System.out.println("创建失败.."); e.printStackTrace(); } catch (WriteException e) { System.out.println("创建失败.."); // TODO Auto-generated catch block e.printStackTrace(); } } /** * * @param filePath 文件路径 * @param fileName 文件名 */ public void ReadingSpreadSheets(String filePath,String fileName){ try { Workbook workbook = Workbook.getWorkbook(new File(filePath + "\\" + fileName)); Sheet sheet = workbook.getSheet(0); Cell a1 = sheet.getCell(0,0); Cell b2 = sheet.getCell(1,1); Cell c2 = sheet.getCell(2,1); String stringa1 = a1.getContents(); String stringb2 = b2.getContents(); String stringc2 = c2.getContents(); double numberb2 = 0; Date datec2 = null; if (a1.getType() == CellType.LABEL) { LabelCell lc = (LabelCell) a1; stringa1 = lc.getString(); } if (b2.getType() == CellType.NUMBER) { NumberCell nc = (NumberCell) b2; numberb2 = nc.getValue(); } if (c2.getType() == CellType.DATE) { DateCell dc = (DateCell) c2; datec2 = dc.getDate(); } // 其他处理 // ... // 结束后关闭文件并释放内存 workbook.close(); System.out.println("读取成功.."); } catch (BiffException e) { // TODO Auto-generated catch block System.out.println("读取失败.."); e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block System.out.println("读取失败.."); e.printStackTrace(); } } public void copyWorkBook(String oldFilePath,String oldFileName,String newFilePath,String newFileName ){ try { Workbook workbook = Workbook.getWorkbook(new File( oldFilePath + "\\" + oldFileName )); WritableWorkbook copy = Workbook.createWorkbook(new File( newFilePath +"\\" +newFileName ), workbook); //进行一些操作 WritableSheet sheet = copy.getSheet(1); WritableCell cell0 = sheet.getWritableCell(1, 2); if (cell0.getType() == CellType.LABEL) { Label l0 = (Label) cell0; l0.setString("modified cell"); } WritableSheet sheet2 = copy.getSheet(1); WritableCell cell = sheet2.getWritableCell(2, 4); NumberFormat fivedps = new NumberFormat("#.#####"); WritableCellFormat cellFormat = new WritableCellFormat(fivedps); cell.setCellFormat(cellFormat); Label label = new Label(0, 2, "New label record"); sheet2.addCell(label); Number number = new Number(3, 4, 3.1459); sheet2.addCell(number); // 所有的都完成,关闭资源 workbook.close(); copy.write(); copy.close(); } catch (BiffException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (RowsExceededException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (WriteException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args){ TutorialMain main = new TutorialMain(); main.WritingSpreadSheet(); } } package test; import java.io.File; import java.io.IOException; import java.util.Calendar; import java.util.Date; import jxl.Cell; import jxl.CellType; import jxl.DateCell; import jxl.LabelCell; import jxl.NumberCell; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; import jxl.write.DateFormat; import jxl.write.DateTime; import jxl.write.Label; import jxl.write.Number; import jxl.write.NumberFormat; import jxl.write.NumberFormats; import jxl.write.WritableCell; 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; public class TutorialMain { /** * WritingSpreadSheet */ public void WritingSpreadSheet() { try { //创建一个WorkBook,即一个Excel文件,文件目录为param0 WritableWorkbook workbook = Workbook.createWorkbook(new File("c:\\output.xls")); //创建一个Sheet,即表单,名字为param0;位置为param1 WritableSheet sheet = workbook.createSheet("First Sheet Name", 0); sheet.setColumnView(0, 30); // 设置列的宽度 sheet.setColumnView(1, 30); // 设置列的宽度 sheet.setColumnView(2, 30); // 设置列的宽度 sheet.setRowView(6, 1000); // 设置行的高度 sheet.setRowView(4, 1000); // 设置行的高度 sheet.setRowView(5, 1000); // 设置行的高度 //创建一个Label,x坐标param0,y坐标param1,名字为param2 Label label = new Label(0, 2, "A label record"); //将该Label sheet.addCell(label); //创建一个Number,x坐标param0,y坐标param1,数值为param2 Number number = new Number(3, 4, 3.1459); sheet.addCell(number); /* * 格式化信息 */ // Create a cell format for Arial 10 point font WritableFont arial10font = new WritableFont(WritableFont.ARIAL, 10); WritableCellFormat arial10format = new WritableCellFormat (arial10font); // Create the label, specifying content and format Label label2 = new Label(1,0, "Arial 10 point label", arial10format); sheet.addCell(label2); Label label3 = new Label(2, 0, "Another Arial 10 point label", arial10format); sheet.addCell(label3); // Create a cell format for Times 16, bold and italic WritableFont times16font = new WritableFont(WritableFont.TIMES, 16, WritableFont.BOLD, true); WritableCellFormat times16format = new WritableCellFormat (times16font); // Create the label, specifying content and format Label label4 = new Label(3,0, "Times 16 bold italic label", times16format); times16format.setBackground(jxl.format.Colour.BLUE); times16format.setAlignment(jxl.format.Alignment.CENTRE); sheet.addCell(label4); /* * 格式化数值 */ WritableCellFormat integerFormat = new WritableCellFormat (NumberFormats.INTEGER); Number number2 = new Number(0, 4, 3.141519, integerFormat); sheet.addCell(number2); WritableCellFormat floatFormat = new WritableCellFormat (NumberFormats.FLOAT); Number number3 = new Number(1, 4, 3.141519, floatFormat); sheet.addCell(number3); NumberFormat fivedps = new NumberFormat("#.#####"); WritableCellFormat fivedpsFormat = new WritableCellFormat(fivedps); Number number4 = new Number(2, 4, 3.141519, fivedpsFormat); sheet.addCell(number4); WritableCellFormat fivedpsFontFormat = new WritableCellFormat (times16font, fivedps); Number number5 = new Number(3, 4, 3.141519, fivedpsFontFormat); sheet.addCell(number5); /* * Formatting Dates */ // Get the current date and time from the Calendar object Date now = Calendar.getInstance().getTime(); DateFormat customDateFormat = new DateFormat ("dd MM yyyy hh:mms"); WritableCellFormat dateFormat = new WritableCellFormat (customDateFormat); DateTime dateCell = new DateTime(0, 6, now, dateFormat); sheet.addCell(dateCell); /* * 合并单元格 */ WritableSheet sheet1 = workbook.createSheet("First Sheet", 1); sheet1.mergeCells(0, 0, 1, 1); // All sheets and cells added. Now write out the workbook workbook.write(); workbook.close(); System.out.println("创建成功.."); } catch (IOException e) { // TODO Auto-generated catch block System.out.println("创建失败.."); e.printStackTrace(); } catch (RowsExceededException e) { // sheet.addCell Exception System.out.println("创建失败.."); e.printStackTrace(); } catch (WriteException e) { System.out.println("创建失败.."); // TODO Auto-generated catch block e.printStackTrace(); } } /** * * @param filePath 文件路径 * @param fileName 文件名 */ public void ReadingSpreadSheets(String filePath,String fileName){ try { Workbook workbook = Workbook.getWorkbook(new File(filePath + "\\" + fileName)); Sheet sheet = workbook.getSheet(0); Cell a1 = sheet.getCell(0,0); Cell b2 = sheet.getCell(1,1); Cell c2 = sheet.getCell(2,1); String stringa1 = a1.getContents(); String stringb2 = b2.getContents(); String stringc2 = c2.getContents(); double numberb2 = 0; Date datec2 = null; if (a1.getType() == CellType.LABEL) { LabelCell lc = (LabelCell) a1; stringa1 = lc.getString(); } if (b2.getType() == CellType.NUMBER) { NumberCell nc = (NumberCell) b2; numberb2 = nc.getValue(); } if (c2.getType() == CellType.DATE) { DateCell dc = (DateCell) c2; datec2 = dc.getDate(); } // 其他处理 // ... // 结束后关闭文件并释放内存 workbook.close(); System.out.println("读取成功.."); } catch (BiffException e) { // TODO Auto-generated catch block System.out.println("读取失败.."); e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block System.out.println("读取失败.."); e.printStackTrace(); } } public void copyWorkBook(String oldFilePath,String oldFileName,String newFilePath,String newFileName ){ try { Workbook workbook = Workbook.getWorkbook(new File( oldFilePath + "\\" + oldFileName )); WritableWorkbook copy = Workbook.createWorkbook(new File( newFilePath +"\\" +newFileName ), workbook); //进行一些操作 WritableSheet sheet = copy.getSheet(1); WritableCell cell0 = sheet.getWritableCell(1, 2); if (cell0.getType() == CellType.LABEL) { Label l0 = (Label) cell0; l0.setString("modified cell"); } WritableSheet sheet2 = copy.getSheet(1); WritableCell cell = sheet2.getWritableCell(2, 4); NumberFormat fivedps = new NumberFormat("#.#####"); WritableCellFormat cellFormat = new WritableCellFormat(fivedps); cell.setCellFormat(cellFormat); Label label = new Label(0, 2, "New label record"); sheet2.addCell(label); Number number = new Number(3, 4, 3.1459); sheet2.addCell(number); // 所有的都完成,关闭资源 workbook.close(); copy.write(); copy.close(); } catch (BiffException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (RowsExceededException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (WriteException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args){ TutorialMain main = new TutorialMain(); main.WritingSpreadSheet(); } } ************************************************************************************************ | |
![]() | ![]() |