通过jxl.jar 读取、导出excel的小例子
2013-03-04 10:25
639 查看
通过jxl.jar 读取、导出excel的小例子。
下载jxl.jar API地址 :http://ishare.iask.sina.com.cn/f/17173351.html?from=like
下载jxl.jar API地址 :http://ishare.iask.sina.com.cn/f/17173351.html?from=like
package export.excel; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import java.util.Random; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.format.Alignment; import jxl.format.VerticalAlignment; import jxl.write.Label; import jxl.write.WritableCellFormat; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import export.vo.PersonVo; /**导出excel文件 * * @author 路人甲 * */ public class ExportExcel { public List<PersonVo> personVoList; public ExportExcel() { initdata(); } /** * 初始化数据 */ public void initdata() { // 随机函数 Random random = new Random(); personVoList = new ArrayList<PersonVo>(); // 初始化100个人进集合 PersonVo personVo = null; for (int i = 0; i < 100; i++) { personVo = new PersonVo(); personVo.setId("" + i); personVo.setName("路人" + i); if (i%2==0) { personVo.setSex("男"); } else { personVo.setSex("女"); } // 取100岁以内的随机年龄 personVo.setAge("" + random.nextInt(100)); personVoList.add(personVo); } } /**导出数据以Excel格式导出 * exportName 导出文件名称 * @param exportName */ public void exportPerson(String exportName) { try{ File excelFile = new File(exportName + "Temp.xls"); // 文件格式 WritableCellFormat format = new WritableCellFormat(); // x 靠左 format.setAlignment(Alignment.RIGHT); // y 靠顶 format.setVerticalAlignment(VerticalAlignment.TOP); // 创建一个工作文件 WritableWorkbook writableWorkbook = Workbook.createWorkbook(excelFile); // 创建一个工作簿 WritableSheet sheet1 = writableWorkbook.createSheet("个人信息列表", 0); //创建行数 设置行的宽度 sheet1.setColumnView(0, 10); sheet1.setColumnView(1, 10); sheet1.setColumnView(2, 10); sheet1.setColumnView(3, 10); // 设置行的值 sheet1.addCell(new Label(0, 0, "ID", format)); sheet1.addCell(new Label(1, 0, "姓名", format)); sheet1.addCell(new Label(2, 0, "性别", format)); sheet1.addCell(new Label(3, 0, "年龄", format)); // 把集合写入到excel中 int rowNum = 1; for (PersonVo bean : personVoList) { int colspanNum = 0; sheet1.addCell(new Label(colspanNum, rowNum, bean.getId(), format)); sheet1.addCell(new Label(colspanNum++, rowNum, bean.getName(), format)); sheet1.addCell(new Label(colspanNum++, rowNum, bean.getSex(), format)); sheet1.addCell(new Label(colspanNum++, rowNum, bean.getAge(), format)); rowNum++; } writableWorkbook.write(); writableWorkbook.close(); // 如果是在网络下载的,那么就写这些 // super.getHttpServletResponse().setContentType("application/x-msdownload"); // String encodetittle = new String(excelName.getBytes("GBK"), "ISO-8859-1"); // super.getHttpServletResponse().addHeader("Content-Disposition","attachment;filename="+encodetittle+".xls"); FileInputStream finput = new FileInputStream(excelFile); // OutputStream output = super.getHttpServletResponse().getOutputStream(); File fout = new File(exportName + ".xls"); OutputStream output = new FileOutputStream(fout); BufferedInputStream buffin = new BufferedInputStream(finput); BufferedOutputStream buffout = new BufferedOutputStream(output); byte[] buffer = new byte[4096]; int count = 0; while ((count = buffin.read(buffer, 0, buffer.length)) > 0) { buffout.write(buffer, 0, count); } buffin.close(); buffout.close(); finput.close(); output.close(); excelFile.delete(); } catch (Exception e) { e.printStackTrace(); } finally { System.out.println("完成导出操作"); } } /**导入数据以Excel格式导出 * * @param importExcel 导入Excel文件名称 */ public void importPerson(String importExcel) { try{ File excelFile = new File(importExcel+".xls"); // 创建一个工作文件 Workbook workbook = Workbook.getWorkbook(excelFile); // 获得第一个工作簿 这里有两种方法获取sheet表,1为名字,而为下标,从0开始 Sheet sheet = workbook.getSheet(0); // 总记录数 int allRow = sheet.getRows(); int allColspan = sheet.getColumns(); System.out.println(allRow); System.out.println(allColspan); // 取数据 for (int i=0; i<allRow; i++) { // 取出每一列的值 for (int j=0; j<allColspan; j++) { // sheet.getCell(列数, 行数); Cell cell = sheet.getCell(j, i); // 打印出该列的值 System.out.print(cell.getContents() + "\t"); } System.out.println(); } //关闭 workbook.close(); }catch (Exception e) { e.printStackTrace(); } finally { System.out.println("完成导入操作"); } } /** * @param args */ public static void main(String[] args) { ExportExcel exportExcel = new ExportExcel(); // 设置路径 String srcPath = "C:/Quarantine/PersonVo"; // 导出 // exportExcel.exportPerson(srcPath); // 读取 exportExcel.importPerson(srcPath); } }
相关文章推荐
- 通过jxl.jar 读取、导出excel的实例代码
- JXL 读取 Excel java中jxl导出数据到excel的例子 上传文件
- JXL 读取 Excel java中jxl导出数据到excel的例子 上传文件
- java通过jxl.jar实现excel导入导出
- java通过jxl.jar实现excel导入导出
- JTable 导出 Excel 利用 jxl.jar
- Android通过jxl.jar实现对excel的操作
- 通过jxl读取Excel报错问题
- 使用jxl读取模板文件,写入数据并导出excel
- Java操作Excel使用jxl.jar--读取Excel
- java导出成Excel的方法(需要jxl.jar包)
- ZK框架简介,以及在ZK下使用JXL读取Excel模板,导出数据模型到Excel的方法
- Java导出Excel文件(jxl.jar版)(详细解读)
- java中jxl导出数据到excel的例子
- 利用jxl将数据导出到excel时弹出保存对话框的例子
- jxl.jar新建读取编辑Excel.xls
- Java导出Excel文件(jxl.jar版)(详细解读)
- java读取数据库并导出到Excel 用到 jxl
- 利用jxl.jar实现excel的读取
- 使用apache 提供的jxl.jar 导出excel