- 浏览: 156257 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
zhangyatong:
<div class="quote_title ...
jxl处理图片 -
zhangyatong:
ws.getColumnView( bc ).getSize( ...
jxl处理图片 -
simple_hui:
a114d 写道楼主,创建xml的过程没看懂,这句
XMLWr ...
java dom4j操作xml -
a114d:
楼主,创建xml的过程没看懂,这句XMLWriter outp ...
java dom4j操作xml
这两天要用,临时在网上找的。
明白了,实际大小 * 32是宽度
宽度是30倍
高度是15倍
/* // ok: 从本地文件得到图片资源,写到xls中 java.io.File image8 = new java.io.File("E:\\logo.png"); WritableImage wimage = new WritableImage( 2, 7, 2.5, 2.5, image8 ); ws.addImage( wimage ); */ // ok: 从internet得到图片资源,写到xls中 HttpClient client = new HttpClient(); String url76 = "http://www.google.cn/images/nav_logo3.png"; GetMethod get77 = new GetMethod( url76 ); client.executeMethod( get77 ); byte[] bb77 = get77.getResponseBody(); java.io.InputStream is77 = get77.getResponseBodyAsStream(); // 关闭 HttpClient 连接 get77.releaseConnection(); // 获取图象大小, ok: 2007-12-11 17:29:35 BufferedImage bi7 = ImageIO.read( is77 ); // another interface such as: read(InputStream input) int picWidth = bi7.getWidth(); // 图片宽, 像素 150 int picHeight = bi7.getHeight(); // 图片高, 像素 105 //test System.out.println("--1703"); System.out.println("Width=" + picWidth ); System.out.println("Height=" + picHeight ); // 输入参数, 图片显示的位置 double picBeginCol = 1.2; double picBeginRow = 1.2; /* 实际像素: 150/105 = 2.78 cm / 3.97 cm = 4832 / 1590 实际像素: 300/210 = 2倍大小 = 9600 / 3150 比率: 32 / 15 */ // 计算参数( picCellWidth, picCellHeight ), 图片显示大小, 默认 100% 显示: begin // 图片cell宽度 = 图片实际跨越每个cell所占长度的相对各个cell ratio的和 // 方法: 根据起始位置,计算图片实际跨越的区域, 然后计算相对ratio,然后累加 // double picCellWidth = 0.0; // 是 cell的跨越个数, 可小数 double picCellHeight = 0.0; // wc = ws.getWritableCell( picBeginCol, picBeginRow ); // 列,行 // ws.getColumnView( picBeginCol ).getSize(); // ws.getRowView( picBeginRow ).getSize(); int _picWidth = picWidth * 32 ; // pic的宽度,循环递减, 是jxl的宽度单位, 32/15 for(int x=0; x< 1234; x++) { int bc = (int)Math.floor( picBeginCol + x ); // 3.6 to 3 // 本次循环所在cell位置 System.out.println("x =" + x ); //test System.out.println("bc =" + bc ); //test int v = ws.getColumnView( bc ).getSize(); //本次cell宽,jxl单位 double _offset0 = 0.0; // >= 0 // 离左边的偏移量, 仅 x = 0 的时候才用 if( 0 == x ) _offset0 = ( picBeginCol - bc ) * v ; // System.out.println("_offset0 =" + _offset0 ); //test System.out.println("_picWidth =" + _picWidth ); //test System.out.println("v =" + v ); //test System.out.println("cw 00=" + ws.getColumnView( 0 ).getSize() ); //test System.out.println("ch 00=" + ws.getRowView( 0 ).getSize() ); //test System.out.println("cw 22=" + ws.getColumnView( 2 ).getSize() ); //test System.out.println("ch 22=" + ws.getRowView( 2 ).getSize() ); //test if( 0.0 + _offset0 + _picWidth > v ) // _picWidth 剩余长度超过一个cell时 { // 计算本次cell内, pic 所占 ratio值, 累加到 picCellWidth double _ratio = 1.0; if( 0 == x ) _ratio = ( 0.0 + v - _offset0 ) / v; System.out.println("_ratio =" + _ratio ); //test // picCellWidth += 1.0; picCellWidth += _ratio; _picWidth -= (int)( 0.0 + v - _offset0 ); // int } else // _picWidth 剩余长度在一个cell内时 { double _ratio = 0.0; if( v != 0 ) _ratio = ( 0.0 + _picWidth ) / v; picCellWidth += _ratio; System.out.println("for: picCellWidth =" + picCellWidth ); //test break; } if( x >= 1233 ) ntTool.ntSysOut("enwl_print_report_xls: 446: x >= 1233,循环超限,不影响运行,影响速度"); // } // for // 此时 picCellWidth 是图片实际的值了 // int _picHeight = picHeight * 15 ; // pic的高度,循环递减, 是jxl的高度单位, 32/15 for(int x=0; x< 1234; x++) { int bc = (int)Math.floor( picBeginRow + x ); // 3.6 to 3 // 本次循环所在cell位置 int v = ws.getRowView( bc ).getSize(); //本次cell高,jxl单位 double _offset0 = 0.0; // >= 0 // 离顶部的偏移量, 仅 x = 0 的时候才用 if( 0 == x ) _offset0 = ( picBeginRow - bc ) * v ; // if( 0.0 + _offset0 + _picHeight > v ) // _picHeight 剩余长度超过一个cell时 { // 计算本次cell内, pic 所占 ratio值, 累加到 picCellHeight double _ratio = 1.0; if( 0 == x ) _ratio = ( 0.0 + v - _offset0 ) / v; // picCellHeight += 1.0; picCellHeight += _ratio; _picHeight -= (int)( 0.0 + v - _offset0 ); // int } else // _picHeight 剩余长度在一个cell内时 { double _ratio = 0.0; if( v != 0 ) _ratio = ( 0.0 + _picHeight ) / v; picCellHeight += _ratio; break; } if( x >= 1233 ) ntTool.ntSysOut("enwl_print_report_xls: 446: x >= 1233,循环超限,不影响运行,影响速度"); // } // for // 此时 picCellHeight 是图片实际的值了 // 计算参数( picCellWidth, picCellHeight ), 图片显示大小, 默认 100% 显示: end //test System.out.println("picBeginCol=" + picBeginCol ); System.out.println("picBeginRow=" + picBeginRow ); System.out.println("picCellWidth=" + picCellWidth ); System.out.println("picCellHeight=" + picCellHeight ); WritableImage wimage = new WritableImage( picBeginCol,picBeginRow, picCellWidth,picCellHeight, bb77 ); // WritableImage wimage = new WritableImage( 2.2, 3.2, 2.3, 2.8, bb77 ); // 图片写到xls中 ws.addImage( wimage ); // 写图片: end // 保护, 不让修改, protect: if( is_rpt_readOnly ) { ws.getSettings().setProtected(true); ws.getSettings().setPassword( rpt_readOnly_pwd ); } jxl.write.WritableCell wc = null; // equal to global // 处理第 i_sheet 张 Sheet表 Sheet rs = rwb.getSheet( i_sheet );
评论
2 楼
zhangyatong
2012-10-23
zhangyatong 写道
ws.getColumnView( bc ).getSize() 这个值 jxl单位 怎么跟px 运算?
明白了,实际大小 * 32是宽度
宽度是30倍
高度是15倍
1 楼
zhangyatong
2012-10-23
ws.getColumnView( bc ).getSize() 这个值 jxl单位 怎么跟px 运算?
发表评论
-
CC使用的记录
2012-09-22 22:17 0创建一个文件视图: 1.通过CC插件选择创建clearcase ... -
查看系统交换空间
2012-09-09 19:59 5034虚拟内存 内存在计算机中的作用很大,电脑中所有运行的程序都需 ... -
错误信息:DB2 SQL57016
2012-09-09 19:33 2148在对表load数据之后,表出现如下错误: DB2 SQL er ... -
20120909
2012-09-09 19:24 8011.把工程给打包 cd 工程的WEB-ROOT目录 jar - ... -
SQL性能优化
2012-01-09 20:24 904转载 http://www.cnblogs.com/roo ... -
flex 关于下载的相关收集
2012-09-09 19:24 1002在Actionscript 2及以前,要打开任何网址,只需调用 ... -
css li 不换行
2010-12-22 23:28 1850li 不换行 ------ 不换行的策略: ... -
ext相关
2010-12-22 23:19 1373Ext的grid列宽自动调整问题解决方案: 1.去除Ext ... -
eclipse打JAR包,并运行
2010-12-02 23:11 26153------------------------------- ... -
绝对路径与相对路径
2010-11-20 20:05 9081.基本概念 绝对路径:绝对路径就是你的主页上的文件或目录在硬 ... -
取数字和字母的随机数
2010-11-20 19:59 1246package com.slei.order; publi ... -
错误信息:与tomcat有关的异常错误
2010-11-20 19:56 13121.Unable to find a javac compil ... -
关于JS异步刷新
2010-11-20 19:49 10591.页面上<div id ="iframe&q ... -
org.w3c.dom解析xml
2010-05-12 21:42 5207一直用的dom4j解析,最近碰到工程里面是这种解析方式。 先 ... -
树的js
2010-05-12 21:39 929在网上看到比较成熟的关于树的js都是dtree,google了 ... -
UltraEdit 使用技巧
2010-04-13 22:26 1431Tip 1: 如何去掉所编辑文 ... -
一点点记录
2010-04-02 17:47 9651.两个打印语句,语义上没错,可是执行时有什么问题? S ... -
java dom4j操作xml
2010-03-25 18:22 2361这是从网上找来的解析xml的文章 SAXReader rea ... -
循环Map
2010-03-24 14:53 2144根据JDK的新特性,用For循环Map,例如循环Map的Key ... -
java 的接口到底起什么作用
2010-03-12 17:11 1103我想,可能不止我一个人有这个疑问,所以,把它贴出来。 ...
相关推荐
此外,它还能处理Excel的图像和超链接,提供了一种灵活的方式来处理带有多媒体内容的Excel文件。 5. **性能优化**:JXL库设计时考虑到了性能,能够高效地处理大量数据,适合在大数据场景下使用。其内存占用相对较低...
JXL不仅能够处理XLS文件,还能处理Biff8文件格式,这是Excel 97到2003版本所使用的格式。 二、JXL核心组件 1. **Workbook**:工作簿对象是Excel文件的抽象,它可以包含多个工作表。 2. **Sheet**:工作表是工作簿中...
JXL库提供了方便的API,使得开发者可以轻松地处理Excel数据,包括读取单元格内容、修改工作表、添加公式,以及本文重点讨论的——插入和输出图片。 **一、JXL库介绍** JXL是一个开源的Java库,专门用于处理Excel...
8. **图片处理**: jxl允许在工作表中插入图片,通过`Picture`类和`Sheet.addImage()`方法实现。 9. **事件驱动模型**: jxl还提供了事件驱动的读取模型,通过监听器接口(如`CellReadListener`)可以实现只读取特定...
JXL支持将图像插入Excel文件,但需要注意,图片必须是BMP格式。使用`Picture`类创建图像对象,然后添加到工作表。 6. **行和列操作**: 可以使用`Row`和`Column`对象来操作Excel的行和列,包括插入、删除、设置...
JXL库支持多种操作,包括设置单元格格式(如字体、颜色、对齐方式)、合并单元格、读写公式、处理图表、处理图像等。虽然JXL对于处理较旧的Excel格式(如.BIFF8,即Excel 97-2003格式)非常有效,但请注意它不支持较...
再者,jxl库并未忽视图像和图表的支持。这使得开发者可以将图片嵌入到Excel文件中,或者创建基于数据的图表,如柱状图、饼图等,这对于数据分析和报告展示极具价值。通过jxl,你可以实现动态生成包含图表的Excel文件...
在这个过程中,需要注意的是,JXL可能无法完全保留Word的复杂格式,比如特定的字体、图片和布局。因此,这种方法适用于对Word文档进行简单编辑,对于复杂的格式转换可能效果不佳。 此外,`jxl.format`包中的类可以...
标题提及的“JXL - JAR包”是指Java eXtensions for Lotus (JXL),这是一个广泛使用的开源库,专门用于处理Excel电子表格文件。JXL库提供了一组易于使用的API,使得Java开发者可以方便地读取、写入以及修改Excel文件...
但是,通过利用`jxl.write.WritableImage`类和一些图像处理技巧,我们可以实现自定义的水印效果。水印通常用于保护文档的版权或传达敏感性信息,它通常以半透明的方式叠加在文档上。 1. **准备工作**: 在开始之前...
Java中的JXL库是一个强大的工具,专为处理Excel文件而设计。这个官方下载版的`jxl.jar`包含了处理Excel工作簿、工作表、单元格等所有必要的功能,使得Java开发者能够轻松地读取、写入和修改Excel数据。本文将深入...
JExcelApi提供了一种灵活的方式来处理Excel电子表格,包括创建新的工作簿、读取现有工作簿、修改单元格内容、设置格式以及处理图表和图像等。这个库在Java社区中广泛使用,尤其适用于那些需要将数据导入导出到Excel...
5. **处理图片和图表**:虽然jxl的主要焦点是单元格数据,但它也能处理Excel文件中的图片和图表。开发者可以通过`Picture`类插入图片,但需要注意的是,jxl不支持创建复杂的图表。 6. **性能和兼容性**:jxl库在...
- **图像和图表支持**:虽然支持有限,但jxl确实提供了添加图像和简单图表的能力,不过仅支持PNG格式。 #### 三、jxl API 主要组件 jxl库的核心组件包括: 1. **Workbook**:代表整个Excel文件。每个Excel文件对应...
5. **处理图片**:JXL库也支持在Excel文件中插入图片。首先需要将图片转换为字节数组,然后使用`WritableImage`类创建一个可写的图像对象,并添加到工作表中。 6. **读写保护与密码**:JXL库提供了设置文件读写权限...
- **POI** 提供更全面的功能,但可能在某些细节上有小bug,并且在处理图片上不如jxl方便。POI更适合涉及复杂公式计算的应用场景。 - **性能比较**: - **内存消耗**:对于相同的数据量,jxl表现出更好的内存管理...
5. **图像处理**:JXL还支持将图片插入到Excel工作表中,这在生成报告或者数据分析的Excel文件时非常有用。 6. **数据流处理**:JXL提供了处理大量数据的能力,通过数据流模型,可以有效地处理大文件,避免内存溢出...
JXL还支持更复杂的功能,如公式计算、图表、图像和超链接。例如,你可以通过`Formula`类创建包含Excel公式的单元格,而`WritableImage`则用于在工作表中插入图片。 在处理大量数据时,JXL提供了流式处理模式,可以...
jxl.jar 通过java操作excel表格的工具类库 支持Excel 95-2000的所有版本 生成Excel 2000标准格式 支持字体、数字、日期操作 能够修饰单元格属性 支持图像和图表 应该说以上功能已经能够大致满足我们的需要。...
7. **处理图片**:JXL库可以将图像插入到Excel工作表中,支持BMP、JPEG、GIF等常见格式。 在使用jxl.jar之前,确保将其添加到项目的类路径中,如果是Maven项目,可以在pom.xml文件中添加依赖。在Java代码中,使用`...