/** * 把从数据库查询到的数据,写入电子表格 * * @throws Exception */ public void createXls() throws Exception { Dao dao = new Dao(); List<Inf> list = dao.getList();//得到数据 /*****************************************************/ OutputStream out = new FileOutputStream("e:/数据报表.xls");//产生输出流,用于输出文件 //工作簿 WritableWorkbook wb = Workbook.createWorkbook(out);//它输出的内容,将会输出到out流对应的文件中 //利用wb产生一张工作表 WritableSheet st = wb.createSheet("我的工作表",0);//产生工作表,它是工作簿中的第1张表 //产生label,它就是显示x行x列的数据 Label idLabel = new Label(0,0,"编号"); Label nameLabel = new Label(1,0,"姓名"); Label ageLabel = new Label(2,0,"年龄"); //把label添加到对应的位置 st.addCell(idLabel); st.addCell(nameLabel); st.addCell(ageLabel); for(int i=0;i<list.size();i++){ Inf f = list.get(i);//取得集合中的每一个对象 Label id = new Label(0,i+1,f.getId().toString()); Label name = new Label(1,i+1,f.getName()); Label age = new Label(2,i+1,f.getAge().toString()); st.addCell(id); st.addCell(name); st.addCell(age); } //输出工作簿 wb.write(); wb.close(); out.close();
数据:
/** * 从数据库中查询 * @return */ public List<Inf> getList(){ List<Inf> list= new ArrayList<Inf>(); list.add(new Inf(1,"jack",23)); list.add(new Inf(2,"tom",25)); list.add(new Inf(3,"bruce",22)); return list; }
jxl读取Excel
/** * 把电子表格中的数据,读入到程序中 */ public void readXls() throws Exception { // 1、用输入流读取文件 InputStream in = new FileInputStream("c:/数据报表.xls"); // 2、根据输入流中的信息,得到电子表格文档--------工作簿 Workbook wb = Workbook.getWorkbook(in); // int sheets = wb.getNumberOfSheets();//得到当前工作簿包含几张表 Sheet st = wb.getSheet(0);// 取得工作簿中的第一张表 // 3、取得电子表格的总行数 int rows = st.getRows(); // 4、取得电子表格的总列数 int columns = st.getColumns(); System.out.println("编号 名称 价格"); for (int i = 1; i < rows; i++) {// 循环每一行 for (int j = 0; j < columns; j++) { // 循环每一列 Cell c = st.getCell(j, i); System.out.print(c.getContents() + " "); } System.out.println(""); } in.close(); }
jxl的jar包:jxl.jar