- 浏览: 433620 次
- 性别:
- 来自: 深圳
-
文章分类
最新评论
-
Glogo:
楼主您好,我在试验您的代码的时候发现新开的三个子线程并没有一直 ...
java 高并发 ReentrantLock -- 可重入的锁 -
univasity:
最近发觉也被限速了,投诉一下就好一会~~ 看来明天又要和电信M ...
ADSL上网速度慢 都是帐号限速惹的祸 -
liuyuanhui0301:
java 高并发 ReentrantLock -- 可重入的锁 -
dang_java:
呵.很好的说明文档.
JXTA技术与应用发展 -
helloqidi:
谢谢,学习了
SQL中exists和in的区别
如果在你的项目中需要解析 Excel 文件,比如,作为用户上传的模板进行解析。那么选择 jExcel 将是一个不错的决定!虽然 Apache 的 Commons 开源组件包 POI 也能完成相同的功能,但 jExcel 小巧、对中文支持更好!噢,这就足够了!不是吗?我将 jExcel 的主要功能封装成 8 个文件,分别如下。
(1) IExcelWorkbook.java 文件。
(2) IExcelWritableWorkbook.java 文件
(3) IExcelFactory.java 文件。
(4) IExcelCellVisitNotify.java 文件。
(5) ExcelWritableWorkbook.java 文件。
(1) IExcelWorkbook.java 文件。
- import java.util.List;
- import java.util.Map;
- /**
- * IExcelWorkbook 表示只读的 Excel 工作簿。<br>
- * flysoft company.<br>
- * @author Dingli.<br>
- * Jun 15, 2008 12:37:31 AM
- */
- public interface IExcelWorkbook
- {
- /**
- * 获取一行单元格的内容。
- * @param sheetName 工作表名称。
- * @param rowIndex 基于0的行索引。
- * @return 单元格的内容。
- */
- public Object[] getWorksheetRow(String sheetName, int rowIndex);
- /**
- * 获取一行单元格的内容。
- * @param sheetIndex 基于0的工作表索引。
- * @param rowIndex 基于0的行索引。
- * @return 单元格的内容。
- */
- public Object[] getWorksheetRow(int sheetIndex, int rowIndex);
- /**
- * 访问全部工作表内容。
- * @param excelCellVisitNotify Excel 工作表单元格访问通知接口。
- */
- public void visitWorksheets(IExcelCellVisitNotify excelCellVisitNotify);
- /**
- * 访问指定的工作表内容。
- * @param sheetName 工作表名称。
- * @param excelCellVisitNotify Excel 工作表单元格访问通知接口。
- */
- public void visitWorksheet(String sheetName, IExcelCellVisitNotify excelCellVisitNotify);
- /**
- * 访问指定的工作表内容。
- * @param sheetIndex 基于0的工作表索引。
- * @param excelCellVisitNotify Excel 工作表单元格访问通知接口。
- */
- public void visitWorksheet(int sheetIndex, IExcelCellVisitNotify excelCellVisitNotify);
- /**
- * 获取全部工作表内容。
- * @return 保存有全部工作表内容的 Map 对象。Map 的 key 为工作表的名称,value 为 List 对象。
- */
- public Map getWorksheets();
- /**
- * 获取工作表内容。
- * @param sheetName 工作表名称。
- * @return 工作表内容。
- */
- public List getWorksheet(String sheetName);
- /**
- * 获取工作表内容。
- * @param sheetIndex 基于0的工作表索引。
- * @return 工作表内容。
- */
- public List getWorksheet(int sheetIndex);
- /**
- * 关闭工作簿。
- * @throws Exception Exception 异常。
- */
- public void closeWorkbook() throws Exception;
- }
import java.util.List; import java.util.Map; /** * IExcelWorkbook 表示只读的 Excel 工作簿。<br> * flysoft company.<br> * @author Dingli.<br> * Jun 15, 2008 12:37:31 AM */ public interface IExcelWorkbook { /** * 获取一行单元格的内容。 * @param sheetName 工作表名称。 * @param rowIndex 基于0的行索引。 * @return 单元格的内容。 */ public Object[] getWorksheetRow(String sheetName, int rowIndex); /** * 获取一行单元格的内容。 * @param sheetIndex 基于0的工作表索引。 * @param rowIndex 基于0的行索引。 * @return 单元格的内容。 */ public Object[] getWorksheetRow(int sheetIndex, int rowIndex); /** * 访问全部工作表内容。 * @param excelCellVisitNotify Excel 工作表单元格访问通知接口。 */ public void visitWorksheets(IExcelCellVisitNotify excelCellVisitNotify); /** * 访问指定的工作表内容。 * @param sheetName 工作表名称。 * @param excelCellVisitNotify Excel 工作表单元格访问通知接口。 */ public void visitWorksheet(String sheetName, IExcelCellVisitNotify excelCellVisitNotify); /** * 访问指定的工作表内容。 * @param sheetIndex 基于0的工作表索引。 * @param excelCellVisitNotify Excel 工作表单元格访问通知接口。 */ public void visitWorksheet(int sheetIndex, IExcelCellVisitNotify excelCellVisitNotify); /** * 获取全部工作表内容。 * @return 保存有全部工作表内容的 Map 对象。Map 的 key 为工作表的名称,value 为 List 对象。 */ public Map getWorksheets(); /** * 获取工作表内容。 * @param sheetName 工作表名称。 * @return 工作表内容。 */ public List getWorksheet(String sheetName); /** * 获取工作表内容。 * @param sheetIndex 基于0的工作表索引。 * @return 工作表内容。 */ public List getWorksheet(int sheetIndex); /** * 关闭工作簿。 * @throws Exception Exception 异常。 */ public void closeWorkbook() throws Exception; }
(2) IExcelWritableWorkbook.java 文件
- import java.util.List;
- /**
- * IExcelWritableWorkbook 表示可写的 Excel 工作簿。<br>
- * flysoft company.<br>
- * @author Dingli.<br>
- * Jun 14, 2008 1:00:36 PM
- */
- public interface IExcelWritableWorkbook extends IExcelWorkbook
- {
- /**
- * 建立工作簿。
- * @param fileName 文件路径。
- * @throws Exception Exception 异常。
- */
- public void createWorkbook(String fileName) throws Exception;
- /**
- * 建立工作表。要确保在 finally 块使用 closeWorkbook() 方法关闭工作簿,否则工作簿内容将在异常发生时丢失。
- * @param sheetName 工作表名称。
- * @param sheetIndex 基于0的工作表索引。
- * @param list 工作表内容。List 中的每个元素表示一行,以对象数组表示。
- * @throws Exception Exception 异常。
- */
- public void createWorksheet(String sheetName, int sheetIndex, List list) throws Exception;
- /**
- * 删除工作表。
- * @param sheetIndex 基于0的工作表索引。
- */
- public void removeWorksheet(int sheetIndex);
- }
import java.util.List; /** * IExcelWritableWorkbook 表示可写的 Excel 工作簿。<br> * flysoft company.<br> * @author Dingli.<br> * Jun 14, 2008 1:00:36 PM */ public interface IExcelWritableWorkbook extends IExcelWorkbook { /** * 建立工作簿。 * @param fileName 文件路径。 * @throws Exception Exception 异常。 */ public void createWorkbook(String fileName) throws Exception; /** * 建立工作表。要确保在 finally 块使用 closeWorkbook() 方法关闭工作簿,否则工作簿内容将在异常发生时丢失。 * @param sheetName 工作表名称。 * @param sheetIndex 基于0的工作表索引。 * @param list 工作表内容。List 中的每个元素表示一行,以对象数组表示。 * @throws Exception Exception 异常。 */ public void createWorksheet(String sheetName, int sheetIndex, List list) throws Exception; /** * 删除工作表。 * @param sheetIndex 基于0的工作表索引。 */ public void removeWorksheet(int sheetIndex); }
(3) IExcelFactory.java 文件。
- import java.io.InputStream;
- /**
- * Excel 工作簿构建工厂。<br>
- * flysoft company.<br>
- * @author Dingli.<br>
- * Jun 15, 2008 12:33:33 AM
- */
- public interface IExcelFactory
- {
- /**
- * 打开一个只读的 Excel 工作簿并返回。
- * @param fileName 文件路径。
- * @return 一个只读的 Excel 工作簿。
- * @throws Exception Exception 异常。
- */
- public IExcelWorkbook openExcelWorkbook(String fileName) throws Exception;
- /**
- * 打开一个只读的 Excel 工作簿并返回。
- * @param inputStream 基本输入流。
- * @return 一个只读的 Excel 工作簿。
- * @throws Exception Exception 异常。
- */
- public IExcelWorkbook openExcelWorkbook(InputStream inputStream) throws Exception;
- /**
- * 建立一个可写的 Excel 工作簿并返回。
- * @return 一个可写的 Excel 工作簿。
- */
- public IExcelWritableWorkbook createExcelWritableWorkbook();
- /**
- * 建立一个可写的 Excel 工作簿并返回。
- * @param fileName 文件路径。
- * @return 一个可写的 Excel 工作簿。
- * @throws Exception Exception 异常。
- */
- public IExcelWritableWorkbook createExcelWritableWorkbook(String fileName) throws Exception;
- /**
- * 打开一个可写的 Excel 工作簿并返回。
- * @param fileName 文件路径。
- * @return 一个可写的 Excel 工作簿。
- * @throws Exception Exception 异常。
- */
- public IExcelWritableWorkbook openExcelWritableWorkbook(String fileName) throws Exception;
- }
import java.io.InputStream; /** * Excel 工作簿构建工厂。<br> * flysoft company.<br> * @author Dingli.<br> * Jun 15, 2008 12:33:33 AM */ public interface IExcelFactory { /** * 打开一个只读的 Excel 工作簿并返回。 * @param fileName 文件路径。 * @return 一个只读的 Excel 工作簿。 * @throws Exception Exception 异常。 */ public IExcelWorkbook openExcelWorkbook(String fileName) throws Exception; /** * 打开一个只读的 Excel 工作簿并返回。 * @param inputStream 基本输入流。 * @return 一个只读的 Excel 工作簿。 * @throws Exception Exception 异常。 */ public IExcelWorkbook openExcelWorkbook(InputStream inputStream) throws Exception; /** * 建立一个可写的 Excel 工作簿并返回。 * @return 一个可写的 Excel 工作簿。 */ public IExcelWritableWorkbook createExcelWritableWorkbook(); /** * 建立一个可写的 Excel 工作簿并返回。 * @param fileName 文件路径。 * @return 一个可写的 Excel 工作簿。 * @throws Exception Exception 异常。 */ public IExcelWritableWorkbook createExcelWritableWorkbook(String fileName) throws Exception; /** * 打开一个可写的 Excel 工作簿并返回。 * @param fileName 文件路径。 * @return 一个可写的 Excel 工作簿。 * @throws Exception Exception 异常。 */ public IExcelWritableWorkbook openExcelWritableWorkbook(String fileName) throws Exception; }
(4) IExcelCellVisitNotify.java 文件。
- /**
- * Excel 工作表单元格访问通知接口。<br>
- * flysoft company.<br>
- * @author Dingli.<br>
- * Jun 7, 2008 1:05:18 PM
- */
- public interface IExcelCellVisitNotify
- {
- /**
- * 实现此方法用于访问到每一个单元格时给与通知。
- * @param sheetName 当前访问的工作表名称。
- * @param rowIndex 当前访问的基于0的工作表行。
- * @param columnIndex 当前访问的基于0的工作表列。
- * @param cellContent 当前访问单元格内容。
- */
- public void cellVisit(String sheetName, int rowIndex, int columnIndex, Object cellContent);
- }
/** * Excel 工作表单元格访问通知接口。<br> * flysoft company.<br> * @author Dingli.<br> * Jun 7, 2008 1:05:18 PM */ public interface IExcelCellVisitNotify { /** * 实现此方法用于访问到每一个单元格时给与通知。 * @param sheetName 当前访问的工作表名称。 * @param rowIndex 当前访问的基于0的工作表行。 * @param columnIndex 当前访问的基于0的工作表列。 * @param cellContent 当前访问单元格内容。 */ public void cellVisit(String sheetName, int rowIndex, int columnIndex, Object cellContent); }
(5) ExcelWritableWorkbook.java 文件。
- import java.io.File;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import jxl.Cell;
- import jxl.Workbook;
- import jxl.write.Label;
- import jxl.write.WritableSheet;
- import jxl.write.WritableWorkbook;
- /**
- * ExcelWritableWorkbook 表示可写的 Excel 工作簿。<br>
- * flysoft company.<br>
- * @author Dingli.<br>
- * Jun 14, 2008 1:01:10 PM
- */
- class ExcelWritableWorkbook implements IExcelWritableWorkbook
- {
- //Excel 工作簿对象。
- private WritableWorkbook writableWorkbook = null;
- /**
- * ExcelWritableWorkbook 的默认构造方法。
- */
- public ExcelWritableWorkbook()
- {}
- /**
- * 建立工作簿。
- * @param fileName 文件路径。
- * @throws Exception Exception 异常。
- */
- public ExcelWritableWorkbook(String fileName) throws Exception
- {
- this.createWorkbook(fileName);
- }
- /**
- * 打开工作簿。要确保在 finally 块使用 closeWorkbook() 方法关闭工作簿,否则工作簿内容将在异常发生时丢失。
- * @param fileName 文件路径。
- * @return ExcelWorkbook 对象。
- * @throws Exception Exception 异常。
- */
- public static ExcelWritableWorkbook openWorkbook(String fileName) throws Exception
- {
- ExcelWritableWorkbook excelWritableWorkbook = new ExcelWritableWorkbook();
- excelWritableWorkbook.writableWorkbook = Workbook.createWorkbook(new File(fileName));//, Workbook.getWorkbook(new File(fileName)));
- return excelWritableWorkbook;
- }
- /*
- * (non-Javadoc)
- * @see com.flysoft.dozen.support.jxl.IExcelWritableWorkbook#createWorkbook(java.lang.String)
- */
- public void createWorkbook(String fileName) throws Exception
- {
- this.writableWorkbook = Workbook.createWorkbook(new File(fileName));
- }
- /*
- * (non-Javadoc)
- * @see com.flysoft.dozen.support.jxl.IExcelWritableWorkbook#createWorksheet(java.lang.String, int, java.util.List)
- */
- public void createWorksheet(String sheetName, int sheetIndex, List list) throws Exception
- {
- if(this.writableWorkbook != null)
- {
- WritableSheet writableSheet = this.writableWorkbook.createSheet(sheetName, sheetIndex);
- for(int i = 0; i < list.size(); i++)
- {
- Object[] row = (Object[])list.get(i);
- for(int j = 0; j < row.length; j++)
- {
- Label label = new Label(j, i, row[j].toString());
- writableSheet.addCell(label);
- }
- }
- }
- }
- /*
- * (non-Javadoc)
- * @see com.flysoft.dozen.support.jxl.IExcelWritableWorkbook#getWorksheetRow(java.lang.String, int)
- */
- public Object[] getWorksheetRow(String sheetName, int rowIndex)
- {
- return this.getWorksheetRow(rowIndex, sheetName);
- }
- /*
- * (non-Javadoc)
- * @see com.flysoft.dozen.support.jxl.IExcelWritableWorkbook#getWorksheetRow(int, int)
- */
- public Object[] getWorksheetRow(int sheetIndex, int rowIndex)
- {
- return this.getWorksheetRow(rowIndex, Integer.valueOf(sheetIndex));
- }
- /*
- * (non-Javadoc)
- * @see com.flysoft.dozen.support.jxl.IExcelWritableWorkbook#visitWorksheets(com.flysoft.dozen.support.jxl.IExcelCellVisitNotify)
- */
- public void visitWorksheets(IExcelCellVisitNotify excelCellVisitNotify)
- {
- if(this.writableWorkbook != null)
- {
- String[] sheetNames = this.writableWorkbook.getSheetNames();
- for(int i = 0; i < sheetNames.length; i++)
- {
- this.getWorksheet(sheetNames[i], excelCellVisitNotify);
- }
- }
- }
- /*
- * (non-Javadoc)
- * @see com.flysoft.dozen.support.jxl.IExcelWritableWorkbook#visitWorksheet(java.lang.String, com.flysoft.dozen.support.jxl.IExcelCellVisitNotify)
- */
- public void visitWorksheet(String sheetName, IExcelCellVisitNotify excelCellVisitNotify)
- {
- this.getWorksheet(sheetName, excelCellVisitNotify);
- }
- /*
- * (non-Javadoc)
- * @see com.flysoft.dozen.support.jxl.IExcelWritableWorkbook#visitWorksheet(int, com.flysoft.dozen.support.jxl.IExcelCellVisitNotify)
- */
- public void visitWorksheet(int sheetIndex, IExcelCellVisitNotify excelCellVisitNotify)
- {
- this.getWorksheet(Integer.valueOf(sheetIndex), excelCellVisitNotify);
- }
- /*
- * (non-Javadoc)
- * @see com.flysoft.dozen.support.jxl.IExcelWritableWorkbook#getWorksheets()
- */
- public Map getWorksheets()
- {
- Map map = null;
- if(this.writableWorkbook != null)
- {
- String[] sheetNames = this.writableWorkbook.getSheetNames();
- map = new HashMap(sheetNames.length);
- for(int i = 0; i < sheetNames.length; i++)
- {
- map.put(sheetNames[i], this.getWorksheet(sheetNames[i], null));
- }
- }
- return map;
- }
- /*
- * (non-Javadoc)
- * @see com.flysoft.dozen.support.jxl.IExcelWritableWorkbook#getWorksheet(java.lang.String)
- */
- public List getWorksheet(String sheetName)
- {
- return this.getWorksheet(sheetName, null);
- }
- /*
- * (non-Javadoc) </spa>
发表评论
-
Android 数字签名学习笔记
2012-04-25 11:03 999在 Android系统中,所有安装到系统的应用程序都必有 ... -
序列化:serializable,hessian,protobuf性能对比
2011-10-31 17:08 1268分布式应用系统中,系统之间的通讯的质量决定了系统的可用性 ... -
JAR 文件揭密
2011-10-18 01:28 900JAR 文件是什么? ... -
SSL双向认证java实现
2011-10-17 23:49 1029本文通过模拟场景,介绍SSL双向认证的java实现默认的情况下 ... -
Benchmark Analysis: Guice vs Spring
2011-04-19 14:35 1056The original link can be found ... -
Java Network Launching Protocol
2011-04-18 17:43 959在java开发的早期,重点被放在了客户端开发。语言中对于app ... -
NIO 包及工作原理
2011-03-11 11:14 1768NIO 包及工作原理 针对 ... -
使用Java NIO编写高性能的服务器
2011-03-11 01:19 829从JDK 1.4开始,Java的标 ... -
RMI, RMI-IIOP,JNDI
2009-05-21 17:31 15431. RMI-IIOP(Java Remote ... -
企业中的 RMI-IIOP
2009-05-21 17:13 1027RMI 和 CORBA 常被视 ... -
JMX
2009-05-21 15:44 1023JMX规范 1.1 J ... -
使用Eclipse IDE的技巧
2009-02-24 11:00 1808使用Eclipse IDE的技巧 作 ... -
spring quartz 动态定时任务
2009-01-22 13:31 4522什么是动态定时任务:是由客户制定生成的,服务端只知道该去执行什 ... -
基于struts+spring+ibatis的轻量级
2009-01-12 16:21 1053基于struts+spring+ibatis的轻量级J2 ... -
Log4j配置实例[经典]
2009-01-12 14:53 1299Log4j配置实例[经典] 0 推荐 ... -
jbpm工作流学习心得
2008-09-19 13:59 1317一,装载流程: 第一种: java 代码 JbpmCo ... -
jbpm请假工作流
2008-09-19 13:56 1861请假流程(备用) 工作中要用到JBPM写工作流,自习的时 ... -
利用JExcel API操作EXCEL文件
2008-09-08 10:52 1485使用Windows操作系统的朋 ... -
Tomcat5.0乱码全解决方案
2008-09-02 11:56 1114http://hi.baidu.com/liet2008/bl ... -
Linux_Macintosh 平台下 Eclipse 环境中的 JNI 混合语言调试
2008-08-28 18:27 1510Linux_Macintosh 平台下 Eclipse ...
相关推荐
本文将详细讲解如何使用Java来读取Excel文件,并重点介绍一个名为JExcel的库,它是一个用于处理Excel文件的Java工具包。 首先,我们要了解Excel文件的结构。Excel文件主要有两种格式:.xls(旧版的BIFF格式)和....
- **JExcel API**:一个开源的Java库,用于读写Excel文件。 - **WritableWorkbook**:创建一个新的可写的Excel工作簿对象。 - **WritableSheet**:表示Excel中的一页。 - **Label**:表示单元格中的文本内容。 ####...
它提供了一个简洁的API,使得开发人员可以方便地对Excel文件进行操作,包括创建、读取和修改Excel文件。JXL支持多种Excel文件格式,包括97-2003版本的.xls格式,这对于那些仍然需要处理旧版Excel文件的项目来说,是...
下面将详细讲解这两个库以及如何使用它们来操作Excel数据。 首先,`jxl.jar`是Java Excel API(JExcelAPI)的一个版本,它是一个开源库,允许开发者以编程方式与Microsoft Excel文件进行交互。JExcelAPI支持读取、...
python学习资源
jfinal-undertow 用于开发、部署由 jfinal 开发的 web 项目
基于Andorid的音乐播放器项目设计(国外开源)实现源码,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。
python学习资源
python学习资源
python学习一些项目和资源
【毕业设计】java-springboot+vue家具销售平台实现源码(完整前后端+mysql+说明文档+LunW).zip
HTML+CSS+JavaScarip开发的前端网页源代码
python学习资源
【毕业设计】java-springboot-vue健身房信息管理系统源码(完整前后端+mysql+说明文档+LunW).zip
成绩管理系统C/Go。大学生期末小作业,指针实现,C语言版本(ANSI C)和Go语言版本
1_基于大数据的智能菜品个性化推荐与点餐系统的设计与实现.docx
【毕业设计】java-springboot-vue交流互动平台实现源码(完整前后端+mysql+说明文档+LunW).zip
内容概要:本文主要探讨了在高并发情况下如何设计并优化火车票秒杀系统,确保系统的高性能与稳定性。通过对比分析三种库存管理模式(下单减库存、支付减库存、预扣库存),强调了预扣库存结合本地缓存及远程Redis统一库存的优势,同时介绍了如何利用Nginx的加权轮询策略、MQ消息队列异步处理等方式降低系统压力,保障交易完整性和数据一致性,防止超卖现象。 适用人群:具有一定互联网应用开发经验的研发人员和技术管理人员。 使用场景及目标:适用于电商、票务等行业需要处理大量瞬时并发请求的业务场景。其目标在于通过合理的架构规划,实现在高峰期保持平台的稳定运行,保证用户体验的同时最大化销售额。 其他说明:文中提及的技术细节如Epoll I/O多路复用模型以及分布式系统中的容错措施等内容,对于深入理解大规模并发系统的构建有着重要指导意义。
基于 OpenCV 和 PyTorch 的深度车牌识别
【毕业设计-java】springboot-vue教学资料管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip