`
杨小幂
  • 浏览: 2262 次
社区版块
存档分类
最新评论

jxl框架

阅读更多
//Create Excle workbook
public boolean writeToSheet(int id) throws SQLException,IOException
{
//Write to sheet
try{
if (this.copyFile(pathFrom,pathTo))
{
String filename = pathTo;
short rownumber = 1;
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(filename + "/Student.xls"));  
            HSSFWorkbook wb  = new HSSFWorkbook(fs);  
            HSSFSheet sheet = wb.getSheetAt(0);
            ArrayList arrstu = (ArrayList)Student.getAllStudents(id);
           
            //Write to sheet
            for(int j=0; j < arrstu.size();j++)
            {
            Student stu = (Student)arrstu.get(j);
           //Get Row
            HSSFRow row =  sheet.getRow(rownumber);  
                if (row == null)
                {
                  row =sheet.createRow(rownumber);
                }
                //Get Name cell
                HSSFCell cellname = row.getCell((short)0);  
                if(cellname == null)
                {
                cellname   =   row.createCell((short)0);  
                }
                cellname.setCellType(HSSFCell.CELL_TYPE_STRING);  
                cellname.setCellValue(stu.getStuname());
               
                //Get Number cell
                HSSFCell cellnum = row.getCell((short)1);  
                if(cellnum == null)
                {
                cellnum   =   row.createCell((short)1);  
                }
                cellnum.setCellType(HSSFCell.CELL_TYPE_STRING);  
                cellnum.setCellValue(stu.getStunum());
               
                //Get Age Cell
                HSSFCell cellage = row.getCell((short)2);  
                if(cellage == null)
                {
                cellage   =   row.createCell((short)2);  
                }
                cellage.setCellType(HSSFCell.CELL_TYPE_STRING);  
                cellage.setCellValue(String.valueOf(stu.getStuage()));
               
                //Get Sex Cell
                HSSFCell cellsex = (HSSFCell)row.getCell((short)3);
                if(cellsex == null)
                {
                cellsex   =   row.createCell((short)3);  
                }
                cellsex.setCellType(HSSFCell.CELL_TYPE_STRING);
                //Male
if(stu.getStusex().equals("1"))
{
cellsex.setCellValue("MALE");
}
else
{
cellsex.setCellValue("FAMALE");
}

//Get Information Cell
HSSFCell cellinfo = row.getCell((short)4);  
                if(cellinfo == null)
                {
                cellinfo   =   row.createCell((short)4);  
                }
                cellinfo.setCellType(HSSFCell.CELL_TYPE_STRING);  
                cellinfo.setCellValue(stu.getStuinfo());
               
                rownumber++;
            }
            //   Write   the   output   to   a   file  
            FileOutputStream fileOut = new FileOutputStream(filename + "/Student.xls");  
            wb.write(fileOut);  
            fileOut.close();
return true;

}
}catch (Exception ex)
        {
System.out.println("Write sheet error");
        System.out.println(ex.getMessage());
        }
return false;
}
=====================================================
这是我曾经写过的一个用POI 操作excel的例子,里面的思路你看一下,至于那些方法和类和jxl得没区别,而且jxl得更简单

【KimmKing】:
import jxl.*;
import jxl.write.*;
import java.io.*;
import java.io.File.*;
import java.util.*;



public class excel
{
public static void main(String[] args)
{

String targetfile = "c:/out.xls";//输出的excel文件名
String worksheet = "List";//输出的excel文件工作表名
String[] title = {"ID","NAME","DESCRIB"};//excel工作表的标题


WritableWorkbook workbook;
try
{
//创建可写入的Excel工作薄,运行生成的文件在tomcat/bin下
//workbook = Workbook.createWorkbook(new File("output.xls"));
System.out.println("begin");

OutputStream os=new FileOutputStream(targetfile);
workbook=Workbook.createWorkbook(os);

WritableSheet sheet = workbook.createSheet(worksheet, 0); //添加第一个工作表
//WritableSheet sheet1 = workbook.createSheet("MySheet1", 1); //可添加第二个工作
/*
jxl.write.Label label = new jxl.write.Label(0, 2, "A label record"); //put a label in cell A3, Label(column,row)
sheet.addCell(label);
*/

jxl.write.Label label;
for (int i=0; i<title.length; i++)
{
//Label(列号,行号 ,内容 )
label = new jxl.write.Label(i, 0, title[i]); //put the title in row1
sheet.addCell(label);
}




//下列添加的对字体等的设置均调试通过,可作参考用


//添加数字
jxl.write.Number number = new jxl.write.Number(3, 4, 3.14159); //put the number 3.14159 in cell D5
sheet.addCell(number);

//添加带有字型Formatting的对象
jxl.write.WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES,10,WritableFont.BOLD,true);
jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wf);
jxl.write.Label labelCF = new jxl.write.Label(4,4,"文本",wcfF);
sheet.addCell(labelCF);

//添加带有字体颜色,带背景颜色 Formatting的对象
jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL,10,WritableFont.BOLD,false,jxl.format.UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.RED);
jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
wcfFC.setBackground(jxl.format.Colour.BLUE);
jxl.write.Label labelCFC = new jxl.write.Label(1,5,"带颜色",wcfFC);
sheet.addCell(labelCFC);

//添加带有formatting的Number对象
jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");
jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf);
jxl.write.Number labelNF = new jxl.write.Number(1,1,3.1415926,wcfN);
sheet.addCell(labelNF);

//3.添加Boolean对象
jxl.write.Boolean labelB = new jxl.write.Boolean(0,2,false);
sheet.addCell(labelB);

//4.添加DateTime对象
jxl.write.DateTime labelDT = new jxl.write.DateTime(0,3,new java.util.Date());
sheet.addCell(labelDT);

//添加带有formatting的DateFormat对象
jxl.write.DateFormat df = new jxl.write.DateFormat("ddMMyyyyhh:mm:ss");
jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(df);
jxl.write.DateTime labelDTF = new jxl.write.DateTime(1,3,new java.util.Date(),wcfDF);
sheet.addCell(labelDTF);

//和宾单元格
//sheet.mergeCells(int col1,int row1,int col2,int row2);//左上角到右下角
sheet.mergeCells(4,5,8,10);//左上角到右下角
wfc = new jxl.write.WritableFont(WritableFont.ARIAL,40,WritableFont.BOLD,false,jxl.format.UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.GREEN);
jxl.write.WritableCellFormat wchB = new jxl.write.WritableCellFormat(wfc);
wchB.setAlignment(jxl.format.Alignment.CENTRE);
labelCFC = new jxl.write.Label(4,5,"单元合并",wchB);
sheet.addCell(labelCFC); //


//设置边框
jxl.write.WritableCellFormat wcsB = new jxl.write.WritableCellFormat();
wcsB.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THICK);
labelCFC = new jxl.write.Label(0,6,"边框设置",wcsB);
sheet.addCell(labelCFC);
workbook.write();
workbook.close();
}catch(Exception e)
{
e.printStackTrace();
}
System.out.println("end");
Runtime r=Runtime.getRuntime();
Process p=null;
//String cmd[]={"notepad","exec.java"};
String cmd[]={"C:\\Program Files\\Microsoft Office\\Office\\EXCEL.EXE","out.xls"};
try{
p=r.exec(cmd);
}
catch(Exception e){
System.out.println("error executing: "+cmd[0]);
}


}
}

【KimmKing】:
要往xls文件里面写入数据的时候需要注意的是第一要新建一个xls文件
OutputStream os=new FileOutputStream("c:excel2.xls");

再建完这个文件的时候再建立工作文件
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File(os));

如果这个文件已经存在,那么我们可以在这个文件里面加入一个sheet为了和以前的数据进行分开;
jxl.write.WritableSheet ws = wwb.createSheet("Test Sheet 1", 0);
在createSheet方法里前面的参数是sheet名,后面是要操作的sheet号

接下来就可以往这个文件里面写入数据了


写入数据的时候注意的格式


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

jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wf);

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

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


(3)添加Number对象
(3.1)显示number对象数据的格式

jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");
jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf);

jxl.write.Number labelNF = new jxl.write.Number(1, 1, 3.1415926, wcfN);
ws.addCell(labelNF);
Number()方法参数说明:
前两上表示输入的位置
第三个表示输入的内容


(4)添加Boolean对象
jxl.write.Boolean labelB = new jxl.write.Boolean(0, 2, false);
ws.addCell(labelB);


(5)添加DateTime对象
jxl.write.DateTime labelDT = new jxl.write.DateTime(0, 3, new java.util.Date());
ws.addCell(labelDT);
DateTime()方法的参数说明
前两个表示输入的位置
第三个表示输入的当前时间


(6)添加带有formatting的DateFormat对象
这个显示当前时间的所&Oacute;行畔&cent;,包括年月日小时分秒
jxl.write.DateFormat df = new jxl.write.DateFormat("dd MM yyyy hh:mm:ss");
jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(df);
jxl.write.DateTime labelDTF = new jxl.write.DateTime(1, 3, new java.util.Date(), wcfDF);
ws.addCell(labelDTF);

(7)添加带有字体颜色Formatting的对象
jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false,UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED);
jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);

import="jxl.format.*
jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL,20,WritableFont.BOLD,false,
UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.GREEN);

(8)设置单元格样式

jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
wcfFC.setBackGround(jxl.format.Colour.RED);//设置单元格的颜色为红色
wcfFC = new jxl.write.Label(6,0,"i love china",wcfFC);
分享到:
评论

相关推荐

    Java读写Excel文件,JXL框架工具类

    本文章要介绍的是一个对JXL框架进行封装,实现读取Excle文件数据并生成相应的Entity对象,实现直接将Entity数据写入到Excellent文件中。 JXLUtil框架功能 1、读取Excle数据,生成相应的Entity 2、将Entity数据...

    jxl集合包 不是SSH框架下的

    尽管JXL并非SSH框架的一部分,但开发者仍然可以在SSH框架的应用中使用JXL,因为Java库的使用通常不受特定框架限制。 在SSH框架下集成JXL,开发者需要注意以下几点: 1. **依赖管理**:在项目中引入JXL的jar包,可以...

    Excel 导出jxl.jar 包

    web开发Excel导出jxl包。Excel导出需要的jar包。jxl框架写Excel简单,快捷。

    JXL动态读写Excel文件框架

    这个框架使得在任何支持 Java 的操作系统上处理 Excel 数据变得简单。JXL 的主要目标是提供一个轻量级且高效的解决方案,使得开发者无需依赖于 Microsoft Office 或其他第三方工具即可进行 Excel 文件操作。 在 JXL...

    jxl报表 代码应用

    【标题】"jxl报表 代码应用"涉及的是在Java编程环境中使用jxl库来创建和处理Excel报表的实践案例,特别关注的是如何在SSH(Struts、Hibernate、Spring)框架下集成jxl进行数据展示。 【描述】"jxl实现的SSH架构的...

    java jxl的jar包 官方下载版

    4. **自动化测试**:在自动化测试框架中,可以使用JXL读取测试数据,或者验证测试结果。 总的来说,JXL是Java开发中处理Excel文件不可或缺的工具。它的易用性和灵活性使得开发者可以快速实现Excel相关的功能,大大...

    批量导出CVS-千万级数据处理

    本文将深入探讨如何使用POI和JXL框架批量导出CSV文件,处理千万级的数据,同时避免内存溢出的问题。 首先,让我们了解CSV(Comma Separated Values)文件格式。CSV是一种通用的、轻量级的文件格式,用于存储表格...

    jxl架包下载

    JXL允许你遍历Excel行和列,然后使用SQL语句或ORM框架(如Hibernate或MyBatis)将数据插入到合适的数据库表中。这对于数据迁移、数据清洗或数据分析非常有用。 3. **从数据库导出Excel**:同样,JXL也可以帮助将...

    jxl支持jdk1.5

    3. 自动化测试:在自动化测试框架中,jxl可用于验证测试数据或生成测试报告。 **文件列表中的"jxl支持jdk1.5"** 在压缩包文件列表中看到的"jxl支持jdk1.5"可能包含以下内容: - 源码文件:可能是jxl库的源代码,...

    JXL 下载 Excel 文档

    根据压缩包子文件的文件名称“Spring13JXL”,我们可以推断这个压缩包可能包含了一个Spring框架的示例项目,项目中使用了JXL库来处理Excel。Spring是一个广泛使用的Java应用框架,它提供了一种模块化和可测试的开发...

    jxl 实现 excel的导入和 导出

    此外,`junit-4.9.jar`是JUnit测试框架的版本,用于编写和运行单元测试,确保代码的正确性。 `ExcelUnit.java`可能是一个自定义的测试类,用于测试Excel相关的操作。在单元测试中,你可以创建模拟的Excel数据,然后...

    jxl 实现excel 比较两列

    4. **比较数据**:对两列的数据进行比较,可以使用Java集合框架中的`Set`来存储和比较元素。例如,创建两个`HashSet`,一个用于存储第一列的值,另一个用于存储第二列的值。在遍历过程中,将每列的值添加到对应的`...

    poi,jxl架包

    文件上传通常涉及MultipartFile对象(Spring框架中的例子),你可以将上传的文件保存到临时目录,然后使用POI或JXL进行解析。 在实际项目中,集成这两个库非常简单。将poi和jxl的jar文件添加到项目的类路径中,或者...

    jxl.jar没费下载

    《深入理解Java库jxl.jar:操作Excel的利器》 在Java编程中,处理Excel文件是一项常见的任务,尤其是在数据导入导出...在实际开发中,结合Java的IO和集合框架,可以构建出复杂的Excel数据处理逻辑,满足复杂业务需求。

    Java生成excel 和读取word文档的内容 jxl 代码

    这里我们将详细讨论如何使用jxl库来完成这些任务。 首先,jxl是一个广泛使用的开源Java库,它允许开发者方便地读写Microsoft Excel文件。在你的项目中,你需要将`jxl.jar`文件添加到类路径中,以便能够使用jxl提供...

    java与jxl、log4j综合运用例子

    Log4j是Apache的一个开源项目,是一个强大的日志框架。在Java应用开发中,日志记录是非常重要的,因为它可以帮助开发者追踪程序运行状态,调试错误,并进行性能分析。Log4j提供了灵活的日志级别(如DEBUG、INFO、...

    jxl 2.6 jar

    - **自动化测试**:测试框架可以利用JXL生成或验证测试数据。 - **报告生成**:企业级应用可能需要自动生成Excel报告,JXL提供了一种便捷的方式。 ### 结论 JXL 2.6作为一个成熟的Java Excel处理库,虽然存在一些...

    struts2+jxl导出excel

    在"struts2+jxl导出excel"的场景中,我们将讨论如何利用Struts2框架与JXL库配合,实现从web应用中导出数据到Excel的工作。 首先,我们需要理解Struts2的动作(Action)和结果(Result)。动作是处理用户请求的核心...

    J2EE使用Jxl实现导出Execl

    J2EE(Java 2 Platform, Enterprise Edition)是Java平台上用于构建企业级应用的框架,它提供了服务器端组件模型、事务管理、安全性和其他服务。在J2EE项目中,有时我们需要将数据库或其他数据源的数据导出为Excel...

    Struts2+JXL 下载 Excel 文档

    总结来说,"Struts2+JXL 下载 Excel 文档"涉及到的知识点包括Struts2框架的工作原理、Action设计模式、HTTP响应头的设置、JXL库的使用以及Java IO流的操作。开发者需要理解这些概念,才能有效地实现从Web应用中生成...

Global site tag (gtag.js) - Google Analytics