使用java写入excel文件 --jxl

要操作excle文件,首先要下载jxl.jar文件,我用的版本是2.6。下载地址:http://www.andykhan.com/jexcelapi/download.html

Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该APIWindows操作系统也可以通过纯Java应用来处理Excel数据表。因为是使用Java编写的,所以我们在Web应用中可以通过JSPServlet来调用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)添加带有formattingNumber对象 
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)添加带有formattingDateFormat对象

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

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);

 

最简单的程序示例:

 

/*

 * Created on 2007-12-19

 *

 * To change the template for this generated file go to

 * Window>Preferences>Java>Code Generation>Code and Comments

 */

package beans;

import java.io.*;

import java.util.Vector;

 

import javax.servlet.ServletException;

 

import net.iyun.util.LocaleConvert;

 

import jxl.*;

import jxl.write.*;

 

/**

 * @author huyuxi

 *

 * To change the template for this generated type comment go to

 * Window>Preferences>Java>Code Generation>Code and Comments

 */

public class GongdanExcel

{

   

    public static void main(String args[]) throws FileNotFoundException, ServletException{

       //调试地址,正式使用时放在服务器上

       OutputStream os = new FileOutputStream("c:\\test.xls");

       writeExcel(os);

    }

    /**

      * 输出Excel

      *

      * @param os

      */

     public static void writeExcel(OutputStream os) throws ServletException

     {

        try

        {

            /**

             * 只能通过API提供的工厂方法来创建Workbook,而不能使用WritableWorkbook的构造函数,

             * 因为类WritableWorkbook的构造函数为protected类型

             * method(1)直接从目标文件中读取WritableWorkbook wwb = Workbook.createWorkbook(new File(targetfile));

             * method(2)如下实例所示 将WritableWorkbook直接写入到输出流

 

             */

            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);

        }

     }

}

 

这样文件就生成了,想看的时候只需要下载到本地就可以了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
JXLJava Excel API的缩写,可以处理Excel文件的读取和写入。以下是使用JXL进行Excel文件读取和写入的示例代码: 1. 读取Excel文件: ```java import java.io.File; import java.util.ArrayList; import java.util.List; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; public class ExcelReader { public static void main(String[] args) { try { File file = new File("test.xls"); Workbook workbook = Workbook.getWorkbook(file); Sheet sheet = workbook.getSheet(0); int rowCount = sheet.getRows(); List<String[]> list = new ArrayList<String[]>(); for (int i = 0; i < rowCount; i++) { Cell[] cells = sheet.getRow(i); String[] row = new String[cells.length]; for (int j = 0; j < cells.length; j++) { row[j] = cells[j].getContents(); } list.add(row); } for (String[] row : list) { for (String cell : row) { System.out.print(cell + "\t"); } System.out.println(); } workbook.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 2. 写入Excel文件: ```java import java.io.File; import java.util.ArrayList; import java.util.List; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; public class ExcelWriter { public static void main(String[] args) { try { File file = new File("test.xls"); WritableWorkbook workbook = Workbook.createWorkbook(file); WritableSheet sheet = workbook.createSheet("Sheet1", 0); List<String[]> list = new ArrayList<String[]>(); list.add(new String[] {"Name", "Age", "Gender"}); list.add(new String[] {"Tom", "20", "Male"}); list.add(new String[] {"Lucy", "18", "Female"}); for (int i = 0; i < list.size(); i++) { String[] row = list.get(i); for (int j = 0; j < row.length; j++) { Label label = new Label(j, i, row[j]); sheet.addCell(label); } } workbook.write(); workbook.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 以上代码演示了如何使用JXL处理Excel文件的读取和写入,通过这些示例代码,你可以根据自己的需要进行调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值