Board logo

标题: Java-------写入excel [打印本页]

作者: look_w    时间: 2019-4-19 19:43     标题: Java-------写入excel

现在记录写入


首先下载包

java excel api

Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为是使用Java编写的,所以我们在Web应用中可以通过JSP、Servlet来调用API实现对Excel数据表的访问。


    /**生成一个Excel文件   
         * @param fileName  要生成的Excel文件名   
         */   
        public static void writeExcel(String[][] content,String city){   
            WritableWorkbook wwb = null;   
            try {   
                //首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象   
               
                wwb = Workbook.createWorkbook(new File("e:\\land.xls"));   
            } catch (IOException e) {   
                e.printStackTrace();   
            }   
            if(wwb!=null){   
                //创建一个可写入的工作表   
                //Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置   
               WritableSheet ws = wwb.createSheet(city,1);   
         
                //下面开始添加单元格   
                for(int row=0;row<content.length;row++){   
                     System.out.println(row);
                  for(int j=0;j<content[row].length;j++){
                        //这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行   
                        Label labelC = new Label(j, row,content[row][j]);   
                       
                        try {   
                            //将生成的单元格添加到工作表中   
                            ws.addCell(labelC);   
                        } catch (RowsExceededException e) {   
                            e.printStackTrace();   
                        } catch (WriteException e) {   
                            e.printStackTrace();   
                        }   
                  }                    
                }   
      
                try {   
                    //从内存中写入文件中   
                    wwb.write();   
                    //关闭资源,释放内存   
                    wwb.close();   
                } catch (IOException e) {   
                    e.printStackTrace();   
                } catch (WriteException e) {   
                    e.printStackTrace();   
                }   
            }   
        }   





(1)最简单的字符型数据

Label label = new Label(0, 0, "This isa Label cell",wcfF);
ws.addCell(label);
在Label()方法里面有三个参数
第一个是代表列数,
第二是代表行数,
第三个代表要写入的内容
第四个是可选项,是输入这个label里面的样式
然后通过写sheet的方法addCell()把内容写进sheet里面。



字体样式:

WritableFont wf = newWritableFont(WritableFont.TIMES, 18, WritableFont.BOLD, true);
WritableFont()方法里参数说明:
这个方法算是一个容器,可以放进去好多属性
第一个: TIMES是字体大小,他写的是18
第二个: BOLD是判断是否为斜体,选择true时为斜体
第三个: ARIAL
第四个: UnderlineStyle.NO_UNDERLINE 下划线
第五个: jxl.format.Colour.RED 字体颜色是红色的



WritableCellFormat wcfF = newWritableCellFormat(wf);



(2)添加带有formatting的Number对象
NumberFormat nf = new NumberFormat("#.##");



(3)添加Number对象

(3.1)显示number对象数据的格式



NumberFormat nf = newNumberFormat("#.##");

WritableCellFormat wcfN = newWritableCellFormat(nf);



Number labelNF = newNumber(1,1,3.1415926,wcfN);

ws.addCell(labelNF);

Number()方法参数说明:

前两上表示输入的位置

第三个表示输入的内容



(4)添加Boolean对象

Boolean labelB = new Boolean(0,2,false);

ws.addCell(labelB);



(5)添加DateTime对象

DateTime labelDT = new DateTime(0,3,newjava.util.Date());

ws.addCell(labelDT);

DateTime()方法的参数说明

前两个表示输入的位置

第三个表示输入的当前时间



(6)添加带有formatting的DateFormat对象

这个显示当前时间的所有信息,包括年月日小时分秒

DateFormat df = new DateFormat("dd MMyyyy hh:mm:ss");

WritableCellFormat wcfDF = newWritableCellFormat(df);

DateTime labelDTF = new DateTime(1,3,newjava.util.Date(),wcfDF);

ws.addCell(labelDTF);



(7)添加带有字体颜色Formatting的对象

WritableFont wfc = newWritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false,UnderlineStyle.NO_UNDERLINE,Colour.RED);

WritableCellFormat wcfFC = newWritableCellFormat(wfc);



import="jxl.format.*

WritableFont wfc = newWritableFont(WritableFont.ARIAL,20,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.GREEN);



(8)设置单元格样式



WritableCellFormat wcfFC = newWritableCellFormat(wfc);

wcfFC.setBackGround(Colour.RED);//设置单元格的颜色为红色

wcfFC = new Label(6,0,"I lovechina",wcfFC);




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0