- 浏览: 82846 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (110)
- java (110)
- Comparing PHP Frameworks ( Symfony (1)
- CakePHP (1)
- YII and CodeIgniter) (1)
- spring定时任务的实现 (1)
- 获得一个节点对象的节点类型 (1)
- SWT 文本框Text通过GC重绘改变边框颜色 (1)
- 常用命令收集(系统设置) (1)
- openlayers 应用Google图层你必须做的 (1)
- Shell Sort in Java (1)
- Java网络编程 (1)
- 删除more里面的Edit (1)
- Android颜色选择器 (1)
- Linux安全配置步骤简述 (1)
- 职场官话 (1)
- TOMCAT常用优化 (1)
- 2008 ==> 2009 (1)
- 01_Android介绍 (1)
- HTML特殊字符 (1)
- 终于完成一个最重要的任务——找工作 (1)
- java 加密算法 base64 (1)
- 《南方周末》《南方日报》《新京报》《南方体育》等报纸在线阅读 (1)
- 由ORM框架设计看到微软与苹果的最大差别 (1)
- 通过发微博控制电脑的程序源码 (1)
- flex入门 (1)
- JS合并单元格、JavaScript单元格合并 (1)
- 各种常用编译开关位置 (1)
- 单一入口应用程序概述 (1)
- [转]Cocoa中回调delegate的方法时判断delegate是否已经被释放 (1)
- java简单的通用ajax分页方法 (1)
- /dev/shm放/tmp (1)
- Java中HashMap排序和遍历 . (1)
- Chrome+SwitchySharp+myentunnel+SSH (1)
- LINUX-网卡Bond (1)
最新评论
-
ken890202:
java简单的通用ajax分页方法 -
hanmiao:
真够乱的,什么都看不清。
Linux安全配置步骤简述 -
houxinyou:
说一下我自己的想法.苹果只是做一款相同的东西,然后是完善.有什 ...
由ORM框架设计看到微软与苹果的最大差别 -
delphixp:
微软技术方案很多?。。。。Java 系统笑而不语。。。
由ORM框架设计看到微软与苹果的最大差别 -
huchiwei:
同意楼上说法。这代码....怎么看!!
web应用dao层的开发经验小结
根据excel模板生成excel报表文件--用于报表打印
jxl修改excel模板文件,实现动态数据分页打印
1.支持公式运算
2.支持对合并的单元格复制
生成分页模板
jxl修改excel模板文件,实现动态数据分页打印
1.支持公式运算
2.支持对合并的单元格复制
package mcfeng.util.excel;import java.io.file;import java.io.ioexception;import jxl.celltype;import jxl.workbook;import jxl.format.cellformat;import jxl.read.biff.biffexception;import jxl.write.label;import jxl.write.writablecell;import jxl.write.writablesheet;import jxl.write.writableworkbook;import jxl.write.writeexception;import jxl.write.biff.rowsexceededexception;import mcfeng.util.exceldatasource;import mcfeng.util.moneyutil;import mcfeng.util.stringutil;public class exceleditbymodel { //list中取数据 private final static string list_flag = "##"; //map中取数据 private final static string map_flag = "#&"; //数字类型处理,支持公式 private final static string num_flag = "#_&"; //大写金额处理 private final static string dx_flag = "##d&"; public static void editexcel(int totalpage,string sourcefile, string targetfile) { file file1 = new file(sourcefile); file file2 = new file(targetfile); editexcel(totalpage,file1, file2); } public static void editexcel(int totalpage,file sourcefile, file targetfile) { string mycellvalue = null; workbook wb = null; try { // 构造workbook(工作薄)对象 wb = workbook.getworkbook(sourcefile); } catch (biffexception e) { e.printstacktrace(); } catch (ioexception e) { e.printstacktrace(); } writableworkbook wwb = null; try { // 首先要使用workbook类的工厂方法创建一个可写入的工作薄(workbook)对象 wwb = workbook.createworkbook(targetfile, wb); } catch (ioexception e) { e.printstacktrace(); } if (wwb != null) { // 读取第一张工作表 // workbook的getsheet方法的参数,表示工作表在工作薄中的位置 writablesheet ws = wwb.getsheet(0); int scale = ws.getsettings().getscalefactor();// 获取页面缩放比例 int rownum = ws.getrows(); int colnum = ws.getcolumns(); //计算出每页行数 int pagenum = rownum/totalpage; for (int j = 0; j < rownum; j++) { // 得到当前行的所有单元格 //计算出取数据的位置 int datanum = j/pagenum; for (int k = 0; k < colnum; k++) { // 对每个单元格进行循环 writablecell mywc = ws.getwritablecell(k, j); system.out.println("mywc.gettype(): " + mywc.gettype()); if (mywc.gettype() == celltype.label) { label l = (label) mywc; string cellvalue = l.getcontents(); //处理后的值 string opvalue = null; system.out.println("cellvalue: " + cellvalue); // 处理excel单元格中#开头的字符串 if (cellvalue != null && cellvalue.startswith("#")) { if (cellvalue.startswith(list_flag)) { if(cellvalue.startswith(dx_flag)) { opvalue = cellvalue.replaceall(dx_flag, ""); } else { opvalue = cellvalue.replaceall(list_flag, ""); } if (stringutil.isnumeric(opvalue)) { mycellvalue = exceldatasource.getdata(opvalue,datanum); if(cellvalue.startswith(dx_flag)) { mycellvalue = moneyutil.amounttochinese(mycellvalue); } } } else if (cellvalue.startswith(map_flag)) { opvalue = cellvalue.replaceall(map_flag, ""); mycellvalue = exceldatasource.getdata(opvalue,datanum); } else if (cellvalue.startswith(num_flag)) { //支持公式运算 opvalue = cellvalue.replaceall(num_flag, ""); mycellvalue = exceldatasource.getdata(opvalue,datanum); system.out.println("mycellvalue: " + mycellvalue); //获取字体,重新设置 cellformat wcff = mywc.getcellformat(); jxl.write.number num = new jxl.write.number(k,j,double.valueof(mycellvalue),wcff); try { ws.addcell(num); } catch (rowsexceededexception e) { e.printstacktrace(); } catch (writeexception e) { e.printstacktrace(); } continue; } l.setstring(mycellvalue); } } } } //设置页面缩放比例 ws.getsettings().setscalefactor(scale); try { // 写入 excel 对象 wwb.write(); // 关闭可写入的 excel 对象 wwb.close(); // 关闭只读的 excel 对象 wb.close(); } catch (ioexception e) { e.printstacktrace(); } catch (writeexception e) { e.printstacktrace(); } } }}
生成分页模板
package mcfeng.util.excel;import java.io.file;import java.io.ioexception;import jxl.range;import jxl.workbook;import jxl.read.biff.biffexception;import jxl.write.writablecell;import jxl.write.writablesheet;import jxl.write.writableworkbook;import jxl.write.writeexception;import jxl.write.biff.rowsexceededexception;public class exceleditbymodelpage { public static void editexceltomodel(int totalpage,string sourcefile, string targetfile) { file file1 = new file(sourcefile); file file2 = new file(targetfile); editexceltomodel(totalpage, file1,file2); } public static void editexcelbymodelpage(int totalpage,string sourcefile,string tempfile, string targetfile) { file file1 = new file(sourcefile); file file2 = new file(tempfile); file file3 = new file(targetfile); editexcelbymodelpage(totalpage, file1,file2,file3); } public static void editexcelbymodelpage(int totalpage, file sourcefile,file tempfile, file targetfile) { if(totalpage == 1) { exceleditbymodel.editexcel(totalpage, sourcefile, targetfile); return; } //需要分页时,生成中间模板文件 exceleditbymodel.editexcel(totalpage,editexceltomodel(totalpage,sourcefile,tempfile), targetfile); } // 生成分页模板 public static file editexceltomodel(int totalpage, file sourcefile,file targetfile) { workbook wb = null; try { // 构造workbook(工作薄)对象 wb = workbook.getworkbook(sourcefile); } catch (biffexception e) { e.printstacktrace(); } catch (ioexception e) { e.printstacktrace(); } writableworkbook wwb = null; try { // 首先要使用workbook类的工厂方法创建一个可写入的工作薄(workbook)对象 wwb = workbook.createworkbook(targetfile, wb); } catch (ioexception e) { e.printstacktrace(); } if (wwb != null) { // 读取第一张工作表 // workbook的getsheet方法的参数,表示工作表在工作薄中的位置 writablesheet ws = wwb.getsheet(0); int scale = ws.getsettings().getscalefactor();// 获取页面缩放比例 int rownum = ws.getrows(); int colnum = ws.getcolumns(); system.out.println("rownum: " + rownum); system.out.println("colnum: " + colnum); //找出合并的单元格 range[] ranges = ws.getmergedcells(); for(int rnum = 0;rnum < ranges.length;rnum++) { system.out.println("左上行数" + ranges[rnum].gettopleft().getrow()); system.out.println("左上列数" + ranges[rnum].gettopleft().getcolumn()); system.out.println("右下行数" + ranges[rnum].getbottomright().getrow()); system.out.println("右下列数" + ranges[rnum].getbottomright().getcolumn()); } int i = 1; while (i < totalpage) { for (int row = 0; row < rownum; row++) { // 得到当前行的所有单元格 for (int col = 0; col < colnum; col++) { // 对每个单元格进行循环 // 复制单元格 writablecell cell = ws.getwritablecell(col, row) .copyto(col, row + (rownum*i)); try { ws.addcell(cell); } catch (rowsexceededexception e) { e.printstacktrace(); } catch (writeexception e) { e.printstacktrace(); } } } //按照模板合并单元格 for(int rnum = 0;rnum < ranges.length;rnum++) { int lcol = ranges[rnum].gettopleft().getcolumn(); int lrow = ranges[rnum].gettopleft().getrow() + (rownum*i); int rcol = ranges[rnum].getbottomright().getcolumn(); int rrow = ranges[rnum].getbottomright().getrow() + (rownum*i); try { ws.mergecells(lcol, lrow, rcol, rrow); } catch (rowsexceededexception e) { e.printstacktrace(); } catch (writeexception e) { e.printstacktrace(); } } i++; } //设置页面缩放比例 ws.getsettings().setscalefactor(scale); } try { // 写入 excel 对象 wwb.write(); // 关闭可写入的 excel 对象 wwb.close(); // 关闭只读的 excel 对象 wb.close(); } catch (ioexception e) { e.printstacktrace(); } catch (writeexception e) { e.printstacktrace(); } return targetfile; }}
发表评论
-
LINUX-网卡Bond
2012-02-08 15:22 846网卡bond是通过把多张网卡绑定为一个逻辑网卡,实现本 ... -
Chrome+SwitchySharp+myentunnel+SSH
2012-02-04 17:14 1851? <p style="margin ... -
Java中HashMap排序和遍历 .
2012-02-03 10:29 1907<div id="article_co ... -
/dev/shm放/tmp
2012-02-02 17:14 880呵呵,有时候不懂装懂的人挺搞笑的哈 转http://z ... -
java简单的通用ajax分页方法
2012-02-02 12:44 1756发表一个自己常用的分页的通用代码,实现了ajax分页。 ... -
[转]Cocoa中回调delegate的方法时判断delegate是否已经被释放
2012-01-31 16:58 1017<p>http://pingguohe.n ... -
单一入口应用程序概述
2012-01-11 14:03 646什么是单一入口应用程序? 在解释什么是单一入口应用 ... -
各种常用编译开关位置
2012-01-11 12:54 653vendor\third-party\products ... -
JS合并单元格、JavaScript单元格合并
2011-12-28 14:08 1060<span style="font-f ... -
flex入门
2011-12-28 12:23 818<span style="fon ... -
通过发微博控制电脑的程序源码
2011-12-20 12:29 1190前段时间看群里挺多讨论 微博api,正好前几天看到有个 ... -
由ORM框架设计看到微软与苹果的最大差别
2011-12-20 09:59 1340一不小心加入水 ... -
《南方周末》《南方日报》《新京报》《南方体育》等报纸在线阅读
2011-12-15 11:04 1219我经常到南方报业提供的网址下载他们出版的报纸看,今天突 ... -
java 加密算法 base64
2011-12-14 17:58 850<span style="color: ... -
终于完成一个最重要的任务——找工作
2011-12-14 14:54 592</span></span>& ... -
HTML特殊字符
2011-12-14 10:54 658最近在做某种模拟器上的网页的显示,需要考虑HTML特殊 ... -
01_Android介绍
2011-12-13 10:44 568? <h4 style="margin ... -
2008 ==> 2009
2011-12-13 10:39 555发现时间过的真的很快,这么快,又是新的一年了。特地翻出 ... -
TOMCAT常用优化
2011-12-12 16:04 635<p class="MsoNorm ... -
职场官话
2011-12-12 12:29 529官场充斥着官话,职场也满是官话,可能你没有注意到而已。 ...
相关推荐
Java-Excel开发包 jxl.jar 可用Java来操作Excel,读取,写入
NULL 博文链接:https://yuanyuan7891.iteye.com/blog/656388
java操纵excel的jar包
java操作excel所需jar包
jxl excel java excel导入数据库 java操作excel 数据库是mysql
java直接操作excel文件,JXL是韩国的以为开发人员编写,与poi相比功能是简单了点,但是对于普通的一些开发是完全可以满足需求
java读取Excel文件-jxl附件列表: ReadAndWriteExcel.java (5.52 KB) jxl.jar (688.03 KB) jxl读Excel文件.doc (88.50 KB)
java导入导出excel操作(jxl) Java解释Excel数据(jxl.jar包的使用) 支持Excel 95-2000的所有版本 生成Excel 2000标准格式 支持字体、数字、日期操作 能够修饰单元格属性 支持图像和图表 应该说以上功能已经能够...
java读取excel java操作excel jxl API
JAVA操作Excel(jxl使用介绍).pdf
java操作Excel java操作Excel java操作Excel
jxl操作excel实例,jxl jar包下载 jxl操作excel实例,jxl jar包下载 jxl操作excel实例,jxl jar包下载
Java操作Excel之JXL,实际的操作实例。对开发excel很很有用哦
java解析excel时使用的jxl.jar包
包含Java操作Excel的jxl.jar包
通过java操作excel表格的工具类库 支持Excel 95-2000的所有版本 生成Excel 2000标准格式 支持字体、数字、日期操作 能够修饰单元格属性 支持图像和图表
Java Excel读写组件jxl使用 例如导出ofice文件
jxl的excel读写操作 java操作excel的读写。
java中使用jxl打印excel报表,java中使用jxl打印excel报表,java中使用jxl打印excel报表