- 浏览: 916924 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (263)
- J2EE (9)
- Spring (11)
- Hibernate (11)
- Struts (5)
- opensource (19)
- Hadoop (28)
- 架构设计 (8)
- 企业应用 (10)
- SNMP (8)
- SSO (4)
- webservice (11)
- RPC (2)
- 编程语言 (0)
- Java (30)
- Javascript (5)
- NoSQL (11)
- 数据库 (0)
- oracle (8)
- MySQL (3)
- web (1)
- Android (2)
- Linux (15)
- 软件工具 (15)
- 项目构建 (11)
- 测试工具 (2)
- Exception (19)
- 杂谈 (4)
- Groovy (5)
- Nodejs (1)
- MacOSX (4)
最新评论
-
fighhin:
decode(BinaryBitmap,java.util.M ...
条形码/二维码之开源利器ZXing图文介绍 -
u013489005:
追问:楼主,请问有中文文档么?我的邮箱是frankgray@s ...
Java表达式计算引擎:Expr4J -
u013489005:
感谢博主 需要引入的包是import java.io.*;im ...
Java表达式计算引擎:Expr4J -
calosteward:
感谢楼主分享。。 Zxing 我听说过的。__________ ...
条形码/二维码之开源利器ZXing图文介绍 -
u013810758:
judasqiqi 写道感谢楼主!想请问楼主一下这个生成的图片 ...
Java实现二维码QRCode的编码和解码
blog迁移至:http://www.micmiu.com
Java Excel是一开放源码项目,通过它开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件以及插入图片等等。
详细介绍及API查看官方:http://www.andykhan.com/jexcelapi/index.html
ps:读取结束时注意调用close()方法;释放内存
写入结束时先调用write()方法,否则得到的是空Excel,因为先前的操作都是存储在缓存中。具体见代码
一、读取Excel的例子:
注意对数字、日期等不同CellType的读取
excel内容如下:
运行结果:
共有1行,4列数据
A1 type:Label
A1 content:字符
B1 type:Number
B1 value:123.0
C1 type:Date
C1 date:Wed Feb 24 08:00:00 CST 2010
二、写入Excel的例子:
运行结果:
ps:添加DateTime对象时 如果没有加格式时,出现1900/1/0 不知啥原因?
三、插入图片
运行结果:
四、更新Excel
我测试过 是不支持2007
以前听说说POI 以后有可能扩展支持(目前具体情况不知道)
没有遇到过这样的问题,你是下面哪种操作情况下出现的:
能否贴出你的代码
那以后使用心得 或者有好的解决方案 互相交流的
兄弟是指pdf吧 可以看看iText这方面的
谢谢 大家互相学习的
Java Excel是一开放源码项目,通过它开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件以及插入图片等等。
详细介绍及API查看官方:http://www.andykhan.com/jexcelapi/index.html
ps:读取结束时注意调用close()方法;释放内存
写入结束时先调用write()方法,否则得到的是空Excel,因为先前的操作都是存储在缓存中。具体见代码
一、读取Excel的例子:
注意对数字、日期等不同CellType的读取
/** * jxl 读取 * @author Michael sun */ public class JxlRead { /** * 读取 excel 文件 * @param filePath * @throws Exception */ private void readExcel(String filePath) throws Exception { InputStream is = null; Workbook workbook = null; try { is = new FileInputStream(filePath); workbook = Workbook.getWorkbook(is); // sheet row column 下标都是从0开始的 Sheet sheet = workbook.getSheet(0); int column = sheet.getColumns(); int row = sheet.getRows(); System.out.println("共有" + row + "行," + column + "列数据"); // A1是字符 Cell cellA1 = sheet.getCell(0, 0); System.out.println("A1 type:" + cellA1.getType()); if (cellA1.getType().equals(CellType.LABEL)) { System.out.println("A1 content:" + cellA1.getContents()); } // B1是数字 Cell cellB1 = sheet.getCell(1, 0); System.out.println("B1 type:" + cellB1.getType()); if (cellB1.getType().equals(CellType.NUMBER)) { NumberCell numberCell = (NumberCell) cellB1; double douval = numberCell.getValue(); System.out.println("B1 value:" + douval); } // C1是日期 Cell cellC1 = sheet.getCell(2, 0); System.out.println("C1 type:" + cellC1.getType()); if (cellC1.getType().equals(CellType.DATE)) { DateCell dateCell = (DateCell) cellC1; Date date = dateCell.getDate(); System.out.println("C1 date:" + date); } // 操作完成时,关闭对象,释放占用的内存空间 workbook.close(); is.close(); } catch (Exception e) { e.printStackTrace(System.out); } finally { if (is != null) { is.close(); } } } /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { String filePath = "D:\\test\\testjxlread.xls"; JxlRead jxlRead = new JxlRead(); jxlRead.readExcel(filePath); } }
excel内容如下:
运行结果:
共有1行,4列数据
A1 type:Label
A1 content:字符
B1 type:Number
B1 value:123.0
C1 type:Date
C1 date:Wed Feb 24 08:00:00 CST 2010
二、写入Excel的例子:
/** * 写入excel * @author Michael sun */ public class JxlWrite { /** * 写入 excel 文件 * @param filePath * @throws Exception */ private void writeExcel(String filePath) throws Exception { OutputStream os = null; try { // 构建Workbook对象 os = new FileOutputStream(filePath); WritableWorkbook wwb = Workbook.createWorkbook(os); // 构建Excel sheet WritableSheet sheet = wwb.createSheet("test write sheet", 0); // 设置标题格式 WritableFont wfTitle = new jxl.write.WritableFont( WritableFont.ARIAL, 18, WritableFont.BOLD, true); WritableCellFormat wcfTitle = new WritableCellFormat(wfTitle); // 设置水平对齐方式 wcfTitle.setAlignment(Alignment.CENTRE); // 设置垂直对齐方式 wcfTitle.setVerticalAlignment(VerticalAlignment.CENTRE); // 设置是否自动换行 wcfTitle.setWrap(true); // 合并A1->C2 sheet.mergeCells(0, 0, 2, 1); Label titleCell = new Label(0, 0, "Title Cell ", wcfTitle); sheet.addCell(titleCell); WritableFont wf = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLUE); WritableCellFormat wcf = new WritableCellFormat(wf); // A3 Label labelCell = new Label(0, 2, "Label Cell "); sheet.addCell(labelCell); // B3 Label labelCellFmt = new Label(1, 2, "Label Cell with WritableCellFormat ", wcf); sheet.addCell(labelCellFmt); // A4 添加jxl.write.Number对象 jxl.write.Number labelN = new jxl.write.Number(0, 3, 3.1415926); sheet.addCell(labelN); // B4 添加Number对象 jxl.write.NumberFormat NumberFormat nf = new NumberFormat("#.##"); WritableCellFormat wcfN = new WritableCellFormat(nf); jxl.write.Number labelNF = new jxl.write.Number(1, 3, 3.1415926, wcfN); sheet.addCell(labelNF); // A5 添加jxl.write.Boolean对象 jxl.write.Boolean labelB = new jxl.write.Boolean(0, 4, true); sheet.addCell(labelB); // A6 添加 jxl.write.DateTime对象 jxl.write.DateTime labelDT = new jxl.write.DateTime(0, 5, new Date()); sheet.addCell(labelDT); // B6 添加DateTime对象 jxl.write.DateFormat jxl.write.DateFormat df = new jxl.write.DateFormat( "yyyy-MM-dd HH:mm:ss"); WritableCellFormat wcfDF = new WritableCellFormat(df); jxl.write.DateTime labelDTF = new jxl.write.DateTime(1, 5, new Date(), wcfDF); sheet.addCell(labelDTF); //先调用write();再调用close(); wwb.write(); wwb.close(); os.close(); } catch (Exception e) { e.printStackTrace(); } finally { if (null != os) { os.close(); } } } /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { String filePath = "D:\\test\\testjxlwrite.xls"; JxlWrite jxlwrite = new JxlWrite(); jxlwrite.writeExcel(filePath); } }
运行结果:
ps:添加DateTime对象时 如果没有加格式时,出现1900/1/0 不知啥原因?
三、插入图片
/** * jxl 插入图片(图像格式只支持png) * @author Michael sun */ public class JxlWriteImg { /** * * @param filePath */ private void writeImg(String filePath) throws Exception { OutputStream os = null; try { String imgPath = "d:\\test\\xx.png"; os = new FileOutputStream(filePath); WritableWorkbook wwb = Workbook.createWorkbook(os); WritableSheet ws = wwb.createSheet("write img", 0); File imgFile = new File(imgPath); // WritableImage(col, row, width, height, imgFile); WritableImage image = new WritableImage(2, 1, 8, 20, imgFile); ws.addImage(image); wwb.write(); wwb.close(); } catch (Exception e) { System.out.println(e); } finally { if (null != os) { os.close(); } } } /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { String filePath = "D:\\test\\testjxlwriteimg.xls"; JxlWriteImg jxlWriteImg = new JxlWriteImg(); jxlWriteImg.writeImg(filePath); } }
运行结果:
四、更新Excel
/** * jxl 更新excel * @author Michael sun */ public class JxlUpdate { /** * * @param filePath */ private void doUpdate(String filePath) { try { // 获得原Excel文件 Workbook wb = Workbook.getWorkbook(new File(filePath)); // 打开一个文件的副本,并且指定数据写回到原文件 WritableWorkbook wwb = Workbook.createWorkbook(new File(filePath), wb); // 对第一个工作簿的A1 更新 WritableSheet wsheet0 = wwb.getSheet(0); WritableCell wc00 = wsheet0.getWritableCell(0, 0); if (wc00.getType() == CellType.LABEL) { Label label00 = (Label) wc00; label00.setString("updata data"); } // 添加一个工作表 WritableSheet sheet = wwb.createSheet("新增工作簿", 1); // 写入一些测试数据 sheet.addCell(new Label(0, 0, "test data")); // 关闭工作薄对象 wwb.write(); wwb.close(); wb.close(); } catch (Exception e) { System.out.println(e); } } /** * @param args */ public static void main(String[] args) { String filePath = "D:\\test\\testjxlupdate.xls"; JxlUpdate jxlUpdate = new JxlUpdate(); jxlUpdate.doUpdate(filePath); } }
评论
13 楼
sjsky
2011-03-10
huangsky 写道
jxl支持07的吗?
我测试过 是不支持2007
以前听说说POI 以后有可能扩展支持(目前具体情况不知道)
12 楼
huangsky
2011-03-10
jxl支持07的吗?
11 楼
kanny87929
2011-03-10
我喜欢收藏这样的代码
10 楼
sjsky
2011-03-10
shihuan830619 写道
谁弄过jxl往Excel里面写png图片, 第一次写成功后第二次再写进去的图片就是黑色的了, 有人遇到过这样的问题吗?
请指教,谢谢
请指教,谢谢
没有遇到过这样的问题,你是下面哪种操作情况下出现的:
- 插入图片后关闭文件再次打开文件后继续插入图片
- 还是在一次操作中 插入两张图片
能否贴出你的代码
9 楼
shihuan830619
2011-03-10
谁弄过jxl往Excel里面写png图片, 第一次写成功后第二次再写进去的图片就是黑色的了, 有人遇到过这样的问题吗?
请指教,谢谢
请指教,谢谢
8 楼
sjsky
2010-03-26
kmkim 写道
JXL有用过,公司就是用JXL
那以后使用心得 或者有好的解决方案 互相交流的
7 楼
kmkim
2010-03-26
JXL有用过,公司就是用JXL
6 楼
sjsky
2010-03-26
form_rr 写道
谢谢分享,最近一直在找这方面的东西。
搞一个项目不容易啊,什么excel,pddf都要上。
搞一个项目不容易啊,什么excel,pddf都要上。
兄弟是指pdf吧 可以看看iText这方面的
5 楼
sjsky
2010-03-26
taoyu3781212 写道
值得学习,写的很详细。
谢谢 大家互相学习的
4 楼
form_rr
2010-03-26
谢谢分享,最近一直在找这方面的东西。
搞一个项目不容易啊,什么excel,pddf都要上。
搞一个项目不容易啊,什么excel,pddf都要上。
3 楼
taoyu3781212
2010-03-26
值得学习,写的很详细。
2 楼
sjsky
2010-03-25
吼吼 互相学习交流
1 楼
jiafu0773
2010-03-25
顶了再看!感谢分享
发表评论
-
$JAVA_HOME环境变量在Mac OS X中设置的问题
2014-01-19 20:31 1638系统版本:Mac OS X 10.9.1 在 ... -
JBoss IIOP实现CORBA/IIOP访问EJB的示例
2014-01-17 14:08 617目录 概述 特性 示例演示 详见:http:// ... -
JavaIDL开发CORBA实例演示
2013-10-25 15:51 524目录: 概述 开发步骤 创建Java项目 -
OpenORB开发CORBA的实例介绍
2013-10-25 15:50 1266目录: 概述 开发步骤 -
java读取控制台输入的几种方法
2013-10-24 09:01 1071java读取控制台输入的 ... -
OSX系统中各种JDK的路径说明
2013-10-15 08:50 641不同厂商发布的JDK,在OSX下的安装路径是不同的。以我本机 ... -
Java 完美判断中文字符
2012-11-23 17:23 1024详见:http://www.micmiu.com/ ... -
java自带的MD5、SHA1算法演示
2012-06-04 10:23 3066详见:http://www.micmiu.com/lang ... -
解决java网络编程IPv6问题
2012-04-05 13:38 1381详见:http://www.micmiu.com/lang/j ... -
swing中Label添加下划线几种方法(含完美版本)
2011-09-30 11:57 3331blog迁移至 :http://www.micmiu. ... -
Java实现给图片添加水印
2011-08-21 12:21 15824blog迁移至 :http://www.m ... -
Java对象序列化ObjectOutputStream和ObjectInputStream示例
2011-08-01 14:14 13695blog迁移至 :http://www.m ... -
proxool连接池介绍
2011-06-29 08:42 3907blog迁移至:http://www.micmiu.c ... -
c3p0配置介绍
2011-06-28 08:56 6607blog迁移至 :http://www.micmiu. ... -
apache-DBCP基本配置介绍
2011-06-27 00:04 13356blog迁移至:http://www ... -
JAVA中IP和整数相互转化介绍
2011-06-22 18:36 4775blog迁移至 :http://www.micmiu. ... -
JAVA线程池ThreadPoolExecutor
2011-06-21 19:00 8985blog迁移至:http://www.micmiu.c ... -
Java 获取当前Classpath
2011-06-19 11:50 8122blog迁移至:http://www ... -
Array和Collection相互转换以及copy深度的小测
2011-06-18 18:46 2264blog迁移至:http://www.micmiu.c ... -
扫描指定包下的类(包括jar文件里的类)
2011-05-27 12:56 5979blog迁移至:http://www.micmiu.c ...
相关推荐
JXL支持将图像插入Excel文件,但需要注意,图片必须是BMP格式。使用`Picture`类创建图像对象,然后添加到工作表。 6. **行和列操作**: 可以使用`Row`和`Column`对象来操作Excel的行和列,包括插入、删除、设置...
标题中的“用jxl操作excel实例”指的是使用Java Excel API(简称JXL)来处理Microsoft Excel文件的一个实际应用。JXL是一个开源库,允许Java开发者读取、写入和修改Excel电子表格。在这个Spring MVC工程中,JXL被...
5. **处理图片**:JXL库也支持在Excel文件中插入图片。首先需要将图片转换为字节数组,然后使用`WritableImage`类创建一个可写的图像对象,并添加到工作表中。 6. **读写保护与密码**:JXL库提供了设置文件读写权限...
JXL库提供了丰富的API,可以对Excel文件进行读、写、修改等操作。下面分别介绍这些操作: **读取Excel文件** 1. 创建一个`Workbook`对象,它是整个Excel文件的容器: ```java Workbook workbook = Workbook....
**JXL库详解与Excel操作实例** JXL(Java Excel API)是一个开源的Java库,专为处理Microsoft Excel文件而设计。它允许开发者在Java应用程序中读取、写入和修改Excel工作簿,无需依赖Microsoft Office。JXL库提供了...
- **图片插入**:JXL 提供了插入图片到 Excel 工作表的功能,但需要处理二进制数据并进行适当的转换。 5. **注意事项** - JXL 对较新版本的 Excel 格式(如 .xlsx)支持有限,主要针对 .xls 格式。 - 大文件处理...
JXL库还支持更复杂的功能,如设置单元格格式、合并单元格、插入图片、读写公式等。在实际项目中,可能需要根据需求定制Cell的样式,例如字体、颜色、边框等,这可以通过`WritableFont`、`WritableCellFormat`等类...
JXL也支持将图片插入Excel文件,需要使用`WritableImage`类,并将其添加到指定的单元格。 9. **性能考虑** 对大型Excel文件进行操作时,应注意内存使用。JXL在内存中存储整个工作簿,所以对于非常大的文件,可能...
例如,你可以设置单元格的字体、颜色、对齐方式,甚至插入图片。对于表格计算,可以使用FormulaCell类来定义Excel公式,系统会在保存时自动计算结果。 **注意事项** - JXL API处理的主要是二进制的BIFF格式,对于...
2. **图片处理**:在Excel中插入图片需要一些额外的步骤。JXL提供了一个`WritableImage`类,可以用来在工作表上添加图片。图片的数据通常以字节数组的形式存储,这可能来自数据库或者文件系统。 3. **创建Excel文件...
它提供了添加单元格、插入图片、设置超链接等方法,使得对工作表的操作更加灵活。 - `addCell(cell)`:添加单元格,但需要注意每个单元格只能使用一次。 - `addHyperlink(link)`:设置单元格的超链接。 - `...
4. **高级特性**:涵盖合并单元格、图表、图片插入等功能,以及处理复杂的Excel结构。 ### 四、实践应用 在实际开发中,JXL常用于数据分析、报表生成、数据导入导出等场景。例如,你可以用JXL将数据库中的数据导出...
5. **图像处理**:JXL还支持将图片插入到Excel工作表中,这在生成报告或者数据分析的Excel文件时非常有用。 6. **数据流处理**:JXL提供了处理大量数据的能力,通过数据流模型,可以有效地处理大文件,避免内存溢出...
OK,只要把读和写结合起来,就可以在N个Excel中读取数据写入你希望的Excel新表中,还是比较方便的. 下面是程序一例: 程序代码:sql = "select * from tablename"; rs = stmt.executeQuery(sql); //新建...
例如,你可以通过`Formula`类创建包含Excel公式的单元格,而`WritableImage`则用于在工作表中插入图片。 在处理大量数据时,JXL提供了流式处理模式,可以提高性能和内存效率。通过使用`Workbook.createSheet()`方法...
OK,只要把读和写结合起来,就可以在N个Excel中读取数据写入你希望的Excel新表中,还是比较方便的。 下面是程序一例: 程序代码:sql = "select * from tablename"; rs = stmt.executeQuery(sql); //新建Excel...
这个实例项目可能包含了Android Studio的相关配置文件(如`.classpath`、`.project`、`project.properties`),图片资源(如`1.jpg`、`ic_launcher-web.png`),项目图标定义(`AndroidManifest.xml`),以及代码...
jxl包不仅支持基本的数据操作,还能够处理复杂的格式设置,如单元格样式、公式以及图像插入等。 **一、API概述** jxl API主要包括以下几个关键组件: 1. **Workbook**: 这是处理Excel文件的核心类,代表一个Excel...
- **图片支持**:可以在Excel工作表中插入和处理图片。 - **图表操作**:创建和修改Excel图表,如柱状图、折线图等。 在实际开发中,使用JXL库可以通过简单的API调用来实现对Excel文件的复杂操作,极大地提高了工作...