import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.Date; import jxl.Sheet; import jxl.Workbook; import jxl.format.Alignment; import jxl.format.Border; import jxl.format.BorderLineStyle; import jxl.format.CellFormat; import jxl.format.Colour; import jxl.write.Boolean; import jxl.write.Label; import jxl.write.Number; import jxl.write.NumberFormat; import jxl.write.WritableCellFormat; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; public class excel { /** * * @param filePath 文件保存路径 * @param fileName 文件名 */ public void ExcelExportUtil(String filePath,String fileName) { // excel文件表头 String[] title = {"编号","姓名","性别","年龄","添加时间","测试带有小数点的","测试字体颜色","通过获取模板,改变字体颜色","测试单元格合并"}; try { // 创建Excel工作薄 WritableWorkbook wwb; // 新建立一个jxl文件 OutputStream os = new FileOutputStream(filePath+fileName); wwb = Workbook.createWorkbook(os); // 添加第一个工作表并设置第一个Sheet的名字 WritableSheet sheet = wwb.createSheet("用户", 0); Label label; for (int i = 0; i < title.length; i++) { // 在Label对象的子对象中指明单元格的位置和内容 label = new Label(i, 0, title[i]); // 将定义好的单元格添加到工作表中 sheet.addCell(label); } // 填充编号 Number code = new Number(0,1,001); sheet.addCell(code); // 填充名称 label = new Label(1, 1, "张三"); sheet.addCell(label); //添加性别(Bollean 类型:true 男 ,false 女) Boolean sex = new Boolean(2,1,true); sheet.addCell(sex); //添加年龄 Number age = new Number(3,1,19); sheet.addCell(age); //添加时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String newdate = sdf.format(new Date()); label = new Label(4, 1, newdate); sheet.addCell(label); /* * 带有小数点类型的 */ NumberFormat nf = new NumberFormat("#.###"); WritableCellFormat wcf = new WritableCellFormat( nf); Number nb = new Number(5, 1, 2.456, wcf); sheet.addCell(nb); /* * 测试单元格样式改变 */ WritableCellFormat wc = new WritableCellFormat(); // 设置居中 wc.setAlignment(Alignment.CENTRE); // 设置单元格的背景颜色 wc.setBackground(Colour.RED); //设置边框线 wc.setBorder(Border.ALL, BorderLineStyle.THIN); label = new Label(6, 1, "字体,颜色", wc); sheet.addCell(label); /* * * 定义公共字体格式 通过获取一个字体的样式来作为模板 首先通过web.getSheet(0)获得第一个sheet * 然后取得第一个sheet的第九列,第一行也就是"测试字体颜色"的字体 */ CellFormat cf = wwb.getSheet(0).getCell(6, 1).getCellFormat(); label = new Label(7, 1, "通过模板", cf); sheet.addCell(label); /* * 合并单元格 通过writablesheet.mergeCells(int x,int y,int m,int n); * 表示将从第x+1列,y+1行到m+1列,n+1行合并 */ sheet.mergeCells(8,1,10,1); label = new Label(8,1,"测试单元格合并"); sheet.addCell(label); // 写入数据 wwb.write(); // 关闭 wwb.close(); } catch (Exception e) { e.printStackTrace(); } } /** * * @param filePath 文件保存路径 * @param fileName 文件名 */ public void readExcel(String filePath,String fileName){ try{ File file = new File(filePath+fileName); // 创建文件对象 Workbook wb = Workbook.getWorkbook(file); // 从文件流中获取Excel工作区对象 Sheet sheet = wb.getSheet(0); // 从工作区中取得页(Sheet) // 获取该工作表的行数,以供下面循环使用 int rowNum = sheet.getRows(); /* * 循环打印 * i=1,i为0时打印的为表头 */ for (int i = 1; i < rowNum; i++) { /* * 得到对应的值sheet.getCell(X, i).getContents() * 得到X+1列的值 */ String code = sheet.getCell(0,i).getContents(); String name = sheet.getCell(1,i).getContents(); String sex = sheet.getCell(2, i).getContents(); String age = sheet.getCell(3, i).getContents(); if(sex.equals("true")){ sex="男"; }else{ sex="女"; } System.out.println("编号"+code+",姓名"+name+",性别"+sex+",年龄"+age); } }catch(Exception e){ e.printStackTrace(); } } }
时间: 2024-10-14 15:02:20