使用java写入excel文件

时间:2023-03-09 20:47:10
使用java写入excel文件
要操作excle文件,首先要下载jxl.jar文件,我用的版本是2.6。下载地址:http://www.andykhan.com/jexcelapi/download.html。
Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为是使用Java编写的,所以我们在Web应用中可以通过JSP、Servlet来调用API实现对Excel数据表的访问。
1、建立一个xls文件
OutputStream os=new FileOutputStream("c:\\test.xls");
2、建立工作文件
WritableWorkbook wwb = Workbook.createWorkbook(os);
3、如果这个文件已经存在,那么我们可以在这个文件里面加入一个sheet为了和以前的数据进行分开; 
jxl.write.WritableSheet ws = wwb.createSheet("Sheet 1", 0); 
在createSheet方法里前面的参数是sheet名,后面是要操作的sheet号
4、写入数据
(1)最简单的字符型数据
Label label = new Label(0, 0, "This is a Label cell",wcfF); 
ws.addCell(label); 
在Label()方法里面有三个参数 
第一个是代表列数, 
第二是代表行数, 
第三个代表要写入的内容 
第四个是可选项,是输入这个label里面的样式 
然后通过写sheet的方法addCell()把内容写进sheet里面。
字体样式:
WritableFont wf = new WritableFont(WritableFont.TIMES, 18, WritableFont.BOLD, true); 
WritableFont()方法里参数说明: 
这个方法算是一个容器,可以放进去好多属性 
第一个: TIMES是字体大小,他写的是18 
第二个: BOLD是判断是否为斜体,选择true时为斜体 
第三个: ARIAL 
第四个: UnderlineStyle.NO_UNDERLINE 下划线 
第五个: jxl.format.Colour.RED 字体颜色是红色的
WritableCellFormat wcfF = new WritableCellFormat(wf);
(2)添加带有formatting的Number对象 
NumberFormat nf = new NumberFormat("#.##");
(3)添加Number对象
(3.1)显示number对象数据的格式
NumberFormat nf = new NumberFormat("#.##");
WritableCellFormat wcfN = new WritableCellFormat(nf);
Number labelNF = new Number(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,new java.util.Date());
ws.addCell(labelDT);
DateTime()方法的参数说明
前两个表示输入的位置
第三个表示输入的当前时间
(6)添加带有formatting的DateFormat对象
这个显示当前时间的所有信息,包括年月日小时分秒
DateFormat df = new DateFormat("dd MM yyyy hh:mm:ss");
WritableCellFormat wcfDF = new WritableCellFormat(df);
DateTime labelDTF = new DateTime(1,3,new java.util.Date(),wcfDF);
ws.addCell(labelDTF);
(7)添加带有字体颜色Formatting的对象
WritableFont wfc = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false,UnderlineStyle.NO_UNDERLINE, Colour.RED);
WritableCellFormat wcfFC = new WritableCellFormat(wfc);
import="jxl.format.*
WritableFont wfc = new WritableFont(WritableFont.ARIAL,20,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.GREEN);
(8)设置单元格样式
WritableCellFormat wcfFC = new WritableCellFormat(wfc);
wcfFC.setBackGround(Colour.RED);//设置单元格的颜色为红色
wcfFC = new Label(6,0,"I love china",wcfFC);
最简单的程序示例:
package beans;
import java.io.*;
import java.util.Vector;
import javax.servlet.ServletException;
import net.iyun.util.LocaleConvert;
import jxl.*;
import jxl.write.*;
public class GongdanExcel
{
    public static void main(String args[]) throws FileNotFoundException, ServletException{
       //调试地址,正式使用时放在服务器上
       OutputStream os = new FileOutputStream("c:\\test.xls");
       writeExcel(os);
    }
     public static void writeExcel(OutputStream os) throws ServletException
     {
        try
        {
            WritableWorkbook wwb = Workbook.createWorkbook(os);
            //创建Excel工作表 指定名称和位置
            WritableSheet ws = wwb.createSheet("test",0);
            //**************往工作表中添加数据*****************
           for(int i=0;i<10;i++){
              for(int j=0;j<10;j++){
              Label label = new Label(i,j,i+j);
              ws.addCell(label);
}
           }
                       //写入工作表
            wwb.write();
            wwb.close();
        }
        catch(Exception e)
        {
           throw new ServletException(e);
        }
     }
}
这样文件就生成了,想看的时候只需要下载到本地就可以了。