- 浏览: 116662 次
- 性别:
- 来自: 广东.佛山.南海
文章分类
最新评论
-
softor:
刚测试了一下,博主的第一种复制到剪贴板的方法在Chrome下不 ...
JS操作剪贴板 -
what866:
哥们太给力了。顶!!!
使用filter解决中文乱码问题 -
tinyxinxin:
对一些概念解释得相当清晰明了,灰常不错
Hibernate上手指南 -
java_4_ever:
<div class="quote_title ...
OpenSessionInViewFilter配置说明 -
king520:
...
JXL操作
java 代码
- package chb.util;
- import java.io.File;
- import java.io.IOException;
- import jxl.Cell;
- import jxl.Sheet;
- import jxl.Workbook;
- import jxl.read.biff.BiffException;
- import jxl.write.Label;
- import jxl.write.WritableImage;
- import jxl.write.WritableSheet;
- import jxl.write.WritableWorkbook;
- import jxl.write.WriteException;
- import jxl.write.biff.RowsExceededException;
- public class ExcelUtils {
- /**读取Excel文件的内容
- * @param file 待读取的文件
- * @return
- */
- public static String readExcel(File file){
- StringBuffer sb = new StringBuffer();
- Workbook wb = null;
- try {
- //构造Workbook(工作薄)对象
- wb=Workbook.getWorkbook(file);
- } catch (BiffException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- if(wb==null)
- return null;
- //获得了Workbook对象之后,就可以通过它得到Sheet(工作表)对象了
- Sheet[] sheet = wb.getSheets();
- if(sheet!=null&&sheet.length>0){
- //对每个工作表进行循环
- for(int i=0;i<sheet.length;i++){
- //得到当前工作表的行数
- int rowNum = sheet[i].getRows();
- for(int j=0;j<rowNum;j++){
- //得到当前行的所有单元格
- Cell[] cells = sheet[i].getRow(j);
- if(cells!=null&&cells.length>0){
- //对每个单元格进行循环
- for(int k=0;k<cells.length;k++){
- //读取当前单元格的值
- String cellValue = cells[k].getContents();
- sb.append(cellValue+"\t");
- }
- }
- sb.append("\r\n");
- }
- sb.append("\r\n");
- }
- }
- //最后关闭资源,释放内存
- wb.close();
- return sb.toString();
- }
- /**生成一个Excel文件
- * @param fileName 要生成的Excel文件名
- */
- public static void writeExcel(String fileName){
- WritableWorkbook wwb = null;
- try {
- //首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象
- wwb = Workbook.createWorkbook(new File(fileName));
- } catch (IOException e) {
- e.printStackTrace();
- }
- if(wwb!=null){
- //创建一个可写入的工作表
- //Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置
- WritableSheet ws = wwb.createSheet("sheet1", 0);
- //下面开始添加单元格
- for(int i=0;i<10;i++){
- for(int j=0;j<5;j++){
- //这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行
- Label labelC = new Label(j, i, "这是第"+(i+1)+"行,第"+(j+1)+"列");
- 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();
- }
- }
- }
- /**搜索某一个文件中是否包含某个关键字
- * @param file 待搜索的文件
- * @param keyWord 要搜索的关键字
- * @return
- */
- public static boolean searchKeyWord(File file,String keyWord){
- boolean res = false;
- Workbook wb = null;
- try {
- //构造Workbook(工作薄)对象
- wb=Workbook.getWorkbook(file);
- } catch (BiffException e) {
- return res;
- } catch (IOException e) {
- return res;
- }
- if(wb==null)
- return res;
- //获得了Workbook对象之后,就可以通过它得到Sheet(工作表)对象了
- Sheet[] sheet = wb.getSheets();
- boolean breakSheet = false;
- if(sheet!=null&&sheet.length>0){
- //对每个工作表进行循环
- for(int i=0;i<sheet.length;i++){
- if(breakSheet)
- break;
- //得到当前工作表的行数
- int rowNum = sheet[i].getRows();
- boolean breakRow = false;
- for(int j=0;j<rowNum;j++){
- if(breakRow)
- break;
- //得到当前行的所有单元格
- Cell[] cells = sheet[i].getRow(j);
- if(cells!=null&&cells.length>0){
- boolean breakCell = false;
- //对每个单元格进行循环
- for(int k=0;k<cells.length;k++){
- if(breakCell)
- break;
- //读取当前单元格的值
- String cellValue = cells[k].getContents();
- if(cellValue==null)
- continue;
- if(cellValue.contains(keyWord)){
- res = true;
- breakCell = true;
- breakRow = true;
- breakSheet = true;
- }
- }
- }
- }
- }
- }
- //最后关闭资源,释放内存
- wb.close();
- return res;
- }
- /**往Excel中插入图片
- * @param dataSheet 待插入的工作表
- * @param col 图片从该列开始
- * @param row 图片从该行开始
- * @param width 图片所占的列数
- * @param height 图片所占的行数
- * @param imgFile 要插入的图片文件
- */
- public static void insertImg(WritableSheet dataSheet, int col, int row, int width,
- int height, File imgFile){
- WritableImage img = new WritableImage(col, row, width, height, imgFile);
- dataSheet.addImage(img);
- }
- public static void main(String[] args) {
- try {
- //创建一个工作薄
- WritableWorkbook workbook = Workbook.createWorkbook(new File("D:/test1.xls"));
- //待插入的工作表
- WritableSheet imgSheet = workbook.createSheet("Images",0);
- //要插入的图片文件
- File imgFile = new File("D:/1.png");
- //图片插入到第二行第一个单元格,长宽各占六个单元格
- insertImg(imgSheet,0,1,6,6,imgFile);
- workbook.write();
- workbook.close();
- } catch (IOException e) {
- e.printStackTrace();
- } catch (WriteException e) {
- e.printStackTrace();
- }
- }
- }
评论
4 楼
king520
2010-12-14
3 楼
king520
2010-12-14
2 楼
larva
2010-10-03
//插入一行 insertRowData(sheet,1,new String[]{"200201001","张三","100","60","100","260"},getDataCellFormat(CellType.STRING_FORMULA)); //一个一个插入行 label = new Label(0, 2,"200201002",getDataCellFormat(CellType.STRING_FORMULA)); sheet.addCell(label); label = new Label(1, 2,"李四",getDataCellFormat(CellType.STRING_FORMULA)); sheet.addCell(label); insertOneCellData(sheet,2,2,70.5,getDataCellFormat(CellType.NUMBER)); insertOneCellData(sheet,3,2,90.523,getDataCellFormat(CellType.NUMBER)); insertOneCellData(sheet,4,2,60.5,getDataCellFormat(CellType.NUMBER)); insertFormula(sheet,5,2,"C3+D3+E3",getDataCellFormat(CellType.NUMBER_FORMULA)); //插入日期 mergeCellsAndInsertData(sheet, 0, 3, 5, 3, new Date(), getDataCellFormat(CellType.DATE));
1 楼
hsy537
2007-06-08
我想问一下,可以实现这样的功能吗?就是有一个execl模板,里面有些地方要填充数据,用jxl可以动态填充数据吗?主要一个难点我感觉就是能否插入一行在原报表的中间部分?
发表评论
-
上传组件(oreilly)用法demo
2007-03-15 14:56 2112java 代码 import java.io ... -
环境变量及其获取方法
2007-03-15 14:50 18931.获取方法 java 代码 Propertie ... -
使用HttpURLConnection将字符流发送到servlet
2007-03-15 14:46 2950使用HttpURLConnection将字符流发送到servl ... -
JSP验证码生成
2007-03-11 16:56 1365java 代码 <%@ page ... -
Escape/unescape的Java实现
2007-03-11 16:41 2015java 代码 package com.kens ...
相关推荐
jxl操作 jxl操作 jxl操作 jxl操作 jxl操作 jxl操作
jxl操作excel.pdf
利用jxl操作excel文件,提取exce文件数据生成txt文件。
JXL操作EXCEL 数据库导出EXCEL相关文件一些详细资料
JXL操作EXCEL的各个类的解析.doc
Java jxl操作Excel97-2003 可运行实例
jxl操作excel实例,jxl jar包下载 jxl操作excel实例,jxl jar包下载 jxl操作excel实例,jxl jar包下载
jxl操作excel,jxl操作读写excel2003.
使用jxl操作Excel,可以作为一个帮助文件
jxl操作excel说明以及jxl jar包
JXL操作excel 字体 颜色 设置单元格 详解
NULL 博文链接:https://8366.iteye.com/blog/468093
jxl操作excel文件示例,对于jxl的使用给出一个简单的示例,帮助大家快速入门
jxl操作excel模板jar包,用于导出特定excel模板
JXL操作EXCEL公式,颜色,表格,百分比,小数点等等等等
通过jxl操作excel,简单方便......................
Excel的生成方式其实很简单,主要包括几个大的类,首先最重要的几个类就是WritableWorkbook,这个类代表的就是一个Excel文档,使用过Excel文档的都应该知道Excel文档的组成,都是由一个一个的sheet组成的,那么这个...
jxl操作Excel说明,及API文档,编写jxl不用愁
java中jxl操作excel