不同jsp页面获得的数据如何导入到同一个excel文件的不同工作表中

jinanzc 2009-03-12 08:29:17
File excel = new File("d:/aming.xls");
if(!excel.exists()){
excel.createNewFile();
}
WritableWorkbook wwb = Workbook.createWorkbook(excel);
WritableSheet ws = wwb.createSheet("testexcel",0);
WritableSheet ws1 = wwb.createSheet("testexce2",1);

Label lable = null;

//对中文的支持非常好
lable = new Label(0,0,"我的中国心");
ws.addCell(lable);
ws1.addCell(lable);
//可以定义模板格式化你的cell
WritableFont wf = new WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false,UnderlineStyle.NO_UNDERLINE, Colour.BLACK);
WritableCellFormat wcf = new WritableCellFormat(wf);
wcf.setBackground(Colour.WHITE);
lable = new Label(0,1,"fdsl",wcf);
ws.addCell(lable);
ws1.addCell(lable);
wf = new WritableFont(WritableFont.TIMES,18,WritableFont.BOLD,true);
wcf = new WritableCellFormat(wf);
lable = new Label(0,2,"aming",wcf);
ws.addCell(lable);
ws1.addCell(lable);
//cell的类型同样可以定义为数字类型
;
//cell的类型同样可以为日期,时间
DateTime dt = new DateTime(0,6,new Date());
ws.addCell(dt);
ws1.addCell(lable);
//并且可以很好格式化你的日期格式
DateFormat df = new DateFormat("MM dd yyyy hh:mm:ss");
wcf = new WritableCellFormat(df);
dt = new DateTime(0,7,new Date(),wcf);
ws.addCell(dt);
ws1.addCell(lable);
//开始写文件了
wwb.write();
wwb.close();


}

}
运行后报错是:Exception in thread "main" jxl.write.biff.JxlWriteException: Attempt to add a cell which is referenced elsewhere
at jxl.write.biff.WritableSheetImpl.addCell(WritableSheetImpl.java:785)
at text.main(text.java:49)
...全文
221 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
老紫竹 2009-03-13
  • 打赏
  • 举报
回复
解决方法很简单,把那些重复使用的,用另外一个代替,或者重新new一个也行。

import java.io.File;
import java.io.IOException;
import java.util.Date;

import jxl.Workbook;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.write.DateFormat;
import jxl.write.DateTime;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

// 老紫竹修改 www.java2000.net
public class TestJxl {

public static void main(String[] args) throws Exception {
File excel = new File("d:/aming.xls");
if (!excel.exists()) {
excel.createNewFile();
}
WritableWorkbook wwb = Workbook.createWorkbook(excel);
WritableSheet ws = wwb.createSheet("testexcel", 0);
WritableSheet ws1 = wwb.createSheet("testexce2", 1);

Label lable = null;

// 对中文的支持非常好
lable = new Label(0, 0, "我的中国心");
ws.addCell(lable);
Label lable1 = new Label(0, 0, "我的中国心2");
ws1.addCell(lable1);
// 可以定义模板格式化你的cell
WritableFont wf = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false,
UnderlineStyle.NO_UNDERLINE, Colour.BLACK);
WritableCellFormat wcf = new WritableCellFormat(wf);
wcf.setBackground(Colour.WHITE);
lable = new Label(0, 1, "fdsl", wcf);
lable1 = new Label(0, 1, "fds1", wcf);
ws.addCell(lable);
ws1.addCell(lable1);
wf = new WritableFont(WritableFont.TIMES, 18, WritableFont.BOLD, true);
wcf = new WritableCellFormat(wf);
lable = new Label(0, 2, "aming", wcf);
ws.addCell(lable);
lable1 = new Label(0, 2, "aming", wcf);
ws1.addCell(lable1);
// cell的类型同样可以定义为数字类型
;
// cell的类型同样可以为日期,时间
DateTime dt = new DateTime(0, 6, new Date());
ws.addCell(dt);
lable1 = new Label(0, 2, "aming", wcf);
ws1.addCell(lable1);
// 并且可以很好格式化你的日期格式
DateFormat df = new DateFormat("MM dd yyyy hh:mm:ss");
wcf = new WritableCellFormat(df);
dt = new DateTime(0, 7, new Date(), wcf);
ws.addCell(dt);
lable1 = new Label(0, 2, "aming", wcf);
ws1.addCell(lable1);
// 开始写文件了
wwb.write();
wwb.close();

}
}

老紫竹 2009-03-13
  • 打赏
  • 举报
回复
Attempt to add a cell which is referenced elsewhere

单纯看错误,你的某个Cell被重复利用了,在每个Sheet 你最好重新new一个出来
老紫竹 2009-03-13
  • 打赏
  • 举报
回复
WritableSheet ws1 = wwb.createSheet("testexce2",1);

去看看后面的那个参数,1 是啥意思吧!

记得处理并发问题就好了。
小强提包包 2009-03-13
  • 打赏
  • 举报
回复
在写的时候,放开文件锁,J2SE中的FileLock可以解决多个线程或者进程读写文件
無名VF 2009-03-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mwt_yan 的回复:]

可以分开写工作表吗,还有就是一个excel文件只能一个进程访问.多页面写时要注意这个问题
[/Quote]
确实
mwt_yan 2009-03-12
  • 打赏
  • 举报
回复

可以分开写工作表吗,还有就是一个excel文件只能一个进程访问.多页面写时要注意这个问题
poi解析excel功能参数说明 此项目是基于springMVC实现的,基本流程为从前台jsp页面使用Ajax文件上传导入excel文件(.xls(97-03)/.xlsx(07以后)),传到后台controller调用相应工具类解析后返回指定参数做后续处理. 1. POIUtil.java工具类 解析通过MutilpartFile导入Excel并解析里面数据,先判断文件的类型(excel处理有两种此处为两种通用)是.xls/.xlsx,通过workbook.getNumberOfSheets()获取工作簿数量,遍历工作簿,sheet.getLastRowNum()获取最大行数,将每行数据放入List list = new Array List(),并根据excel数据类型将器转换为字符串、数字、Boolean、公式、空值类型防止出现错误,最后返回一个list. 2. ExcelUtil.java工具类 解析通过MutilpartFile导入Excel并解析里面数据,先判断文件的类型(excel处理有两种此处为两种通用)是.xls/.xlsx,采用Apache的POI的API来操作Excel,读取内容后保存到List中,再将List转Json(使用Linked,增删快,与Excel表顺序保持一致),Sheet表1————>List1 步骤1:根据Excel版本类型创建对于的Workbook以及CellSytle 步骤2:遍历每一个表中的每一行的每一列,这里做了些小改动,因为后续可能解析过后可能会保存入数据库,这里为第一行数据添加一个自定义表头 String[] p = new String[]{"name","age","sex","tel","address","e-mail","phone"}; 遍历的列数量以p的length为准 步骤3:一个sheet表就是一个Json,多表就多Json,对应一个 List 一个sheet表的一行数据就是一个 Map 一行中的一列,就把当前列头为key,列值为value存到该列的Map中 Map 一个线性Hash Map,以Excel的sheet表顺序,并以sheet表明作为key,sheet表转换Json后的字符串作为value 最后返回一个LinkedHashMap 3. ExcelToJsonPoi.java工具类 这个与上面工具类类似,不过这个是解析本地excel文件不是使用的流,使用迭代遍历sheet工作簿与每行每列的值,将所有类型作为String类型处理返回一个json对象输出至控制台
NTKO OFFICE文档控件支持在线编辑,痕迹保留,手写签名,电子印章,全屏批注,电子签名[数字签名,数字证书签名],简单OCR等实用功能,支持PHP,ASP,JSP,C#,VB.NET,DOMINO等各种web编程语言和服务器。 NTKO OFFICE文档控件能够在浏览器窗口中直接编辑Word,Excel,Wps等Office文档并保存到任意Web服务器。实现文档和电子表格的统一管理。同时支持强制痕迹保留,手写签名,电子印章,版本控制,附件上传等办公自动化系统必备的功能。是OA系统开发的最佳选择组件!!卓越的性能,低廉的价格,简洁高效的编程接口,让您以最低的开发成本,轻松创建极具特色的办公自动化解决方案! 采用基于标准的而非基于自定义协议强大的B/S通讯技术,能够自由的将服务器数据库中的数据插入当前文档的指定位置,而且还可以将文档中的指定数据随时保存到服务器上。 NTKO OFFICE文档痕迹保留全屏批注手写签名电子印章控件是拥有完全自主知识产权的ActiveX控件。 NTKO OFFICE文档控件4.0版本新增异步下载等多项功能。异步下载方法支持显示文件下载进度或者不显示进度的选项,大大改善了用户界面体验,并满足多种不同层次的开发需求。 http://www.ntko.com在线演示展示了NTKO OFFICE文档控件的“异步下载”,“智能提交”等技术。该技术能让您更简单快速的将控件集成到您的产品中。 NTKO OFFICE文档控功能强大,以下仅为部分功能列表: 1 新增电子签名[CA数字签名]的功能。符合国家《电子签名法》V3.0版本新增了文档电子签名[CA数字签名]功能。同时简化了一些常用功能的函数和方法。3.0版本的数字签名功能基于国际标准开发,同时符合《电子签名法》。独创使用电子签名[数字签名]验证对文档内容,格式等的任何改动。同时支持联合签名,证书吊销列表等功能。电子签名[数字签名]功能采用标准接口,可以和企业已有的PKI系统无缝融合。 2 增强对WPS文档和金山电子表支持。增加保存PPT为HTML,支持UTF8 URL等功能 V2.5.2.3版本新增了对WPS痕迹保留的支持,并支持金山电子表。另外,该版本还增加了保存PPT为HTML,支持UTF8 URL和UTF8数据编码传输的功能。 3 新增可定制的文件菜单,可定制一个主菜单,禁止F12保存文档,可显示页码,页数信息的状态栏。 V2.5.2.1版本新增了可定制文件菜单,可定制一个主菜单。进一步增强了系统的可集成性。新增禁止F12快捷键保存文档,以及在禁止拷贝的基础上禁止文字拖放的功能,进一步增强了文件的安全性。新的状态栏可以显示Word文档的页码和页数等信息。用户使用更加方便。 另外新增印章管理控件,可在浏览器中创建,修改印章从保存到本地或者服务器。 4 新增压缩存储和传输功能 V2.5.1版本新增的压缩存储和传输功能,使的20K左右的Word文档压缩后只有2K左右。极大节约了数据库或磁盘空间,提高了网络利用率和传输效率。 5 新增全文批注功能和远程印章管理控件。 V2.5版本新增的全文批注功能,能够让您以所见即所得的方式对文档进行全文批注。新增的印章管理控件可以让您修改远程服务器上的印章,并保存回服务器。 6 全面支持C/S方式和其他容器。在VB,Delphi,C++Builder中均可以很方便的使用控件 V2,3,2,0版本之后,NTKO OFFICE文档控件不仅可以继续与浏览器和各种后台Web服务器无缝集成创建B/S结构的应用,更全面支持C/S方式的编程和其他容器。您可以在VB,Delphi,以及C++ Builder中使用控件。快速创建具有痕迹保留,电子印章等功能的C/S结构的应用。 7 支持将数据直接写入ODBC数据源。 V2,3,2,0版本之后,NTKO OFFICE文档控件支持直接从ODBC数据源读取文档内容,或者将文档内容存入ODBC数据源。这为C/S结构下创建共享的办公系统,文档管理,知识管理解决方案提供了更强大的接口。 8 状态栏,智能Web调用,预定义模板套红 全面支持状态栏,用户界面更加友好。智能Web调用让您甚至可使用XML或者自定义的协议与服务器通讯! 9 广泛的操作系统,Web服务器,数据库和编程语言支持 后台支持Windows,Linux,Unix等各种操作系统;支持IIS,Domino,Websphere,Apache等所有后台WEB服务器类型,支持Db2,Oracle,MySQL,SQL Server等各种常用数据库和JSP,ASP,PHP,PERL等编程语言。 10 支持在提交编辑文档的同时,提交表单的其它数据,包括其它的文件上传 采用我们独创的“智能提交”技术,让您在提交编辑文档的同时,提交表单的其
MLDN 李兴华 Java Web 开发实战经典.pdf (高清版) 全书分为两部分,需 要全部下载下载一起解压,此部分为第一部分 带有书签,清华大学出版社 第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、服务器与浏览器 2.2、HTML简介 2.2.1、HTML元素概览 2.2.2、创建显示WEB页 2.2.3、创建表单WEB页 2.3、JavaScript简介 2.3.1、JavaScript的基本语法 2.3.2、事件处理 2.3.3、window对象 2.4、本章摘要 2.5、开发实战讲解 第3章 XML简介 3.1、认识XML 3.2、XML解析 3.2.1、DOM解析操作 3.2.2、SAX解析操作 3.2.3、XML解析的好帮手:JDOM 3.2.4、最出色的解析工具:DOM4J 3.3、使用JavaScript操作DOM 3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 4.3.1、Tomcat下载 4.3.2、Tomcat安装 4.3.3、服务器配置 4.4、编写第一个jsp文件 4.5、交互性 4.6、本章摘要 4.7、开发实战讲解 第5章 JSP基础语法 5.1、JSP注释 5.2、Scriptlet 5.2.1、第一种Scriptlet: 5.2.2、第二种Scriptlet: 5.2.3、第三种Scriptlet: 5.3、Scriptlet标签 5.4、page指令 5.4.1、设置页面的MIME 5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、数据库连接操作 5.5、包含指令 5.5.1、静态包含 5.5.2、动态包含 5.6、跳转指令 5.7、实例操作:用户登陆程序实现(JSP + JDBC实现) 5.7.1、创建数据库表 5.7.2、程序实现思路 5.7.3、程序实现 5.8、本章摘要 5.9、开发实战讲解(基于Oracle数据库) 第6章 JSP内置对象 6.1、JSP内置对象概览 6.2、四种属性范围 6.2.1、page属性范围(pageContext范围) 6.2.2、request属性范围 6.2.3、session属性范围 6.2.4、application属性范围 6.2.5、深入研究page属性范围 6.3、request对象 6.3.1、乱码解决 6.3.2、接收请求参数 6.3.3、显示全部的头信息 6.3.4、角色验证 6.3.5、其他操作 6.4、response对象 6.4.1、设置头信息 6.4.2、页面跳转 6.4.3、操作Cookie 6.5、session对象 6.5.1、取得Session Id 6.5.2、登陆及注销 6.5.3、判断新用户 6.5.4、取得用户的操作时间 6.6、application对象 6.6.1、取得虚拟目录对应的绝对路径 6.6.2、范例讲解:网站计数器 6.6.3、查看application范围的属性 6.7、WEB安全性及config对象 6.7.1、WEB安全性 6.7.2、config对象 6.8、out对象 6.9、pageContext对象 6.10、本章摘要 6.11、开发实战讲解(基于Oracle数据库) 第7章 JavaBean 7.1、JavaBean简介 7.2、在JSP中使用JavaBean 7.2.1、WEB开发的标准目录结构 7.2.2、使用JSP的page指令导入所需要的JavaBean 7.2.3、使用指令 7.3、JavaBean与表单 7.4、设置属性: 7.4.1、设置指定的属性 7.4.2、指定设置属性的参数 7.4.3、为属性设置具体内容 7.5、取得属性: 7.6、JavaBean的保存范围 7.6.1、page范围的JavaBean 7.6.2、request范围的JavaBean 7.6.3、session范围的JavaBean 7
电子商城系统设计 目 录 1 实习内容简述 2 1.1 实习期间完成的学习内容: 2 1.1.1 Java Web、JSP技术和MVC框架: 2 1.1.2 HTML语言: 2 1.2 利用Java Web 和JSP技术开发电子购物商城系统: 5 2 实习单位简介 6 2.1 公司合作企业 7 2.2 合作院校 7 3 系统需求 8 3.1 需求说明 8 3.2 名词定义 8 4 需求分析 8 4.1 项目背景 8 4.2 功能要求 9 4.3 电子商城功能描述 10 4.4 系统包括的范围 10 4.5 系统用户说明 10 4.6 非功能要求 10 5 概要设计 11 5.1 总体设计 11 5.2 运行环境及部署 11 5.2.1 硬件环境 11 5.2.2 软件环境 11 5.2.3 网络环境 11 5.3 命名及约定 12 5.3.1 接口方法命名 12 5.3.2 JSP页面命名 12 6 详细设计 13 6.1 业务流程图 13 7 数据库设计 16 7.1 概念设计 16 7.1.1 实体联系图 16 7.2 逻辑结构 18 7.2.1 数据表结构详细设计 18 7.2.2 数据库表之间的关系设计 19 8 程序效果展示 20 8.1 前台功能模块 20 8.2 后台功能模块 22 9 实习总结体会 27 实习内容简述 1 实习期间完成的学习内容: 1 Java Web、JSP技术和MVC框架: Java技术是Sun公司在1995年5月正式推出的。八年多来,Java已从编程语言发展成为 全球第一大通用开发平台。Java技术已为计算机行业主要公司所采纳,同时也被越来越 多的国际技术标准化组织所接受。1999年,Sun推出了以Java 2平台为核心的J2EE、J2SE和J2ME三大平台。随着三大平台的迅速推进,在世界上形成了 一股巨大的Java应用浪潮。同时,Java技术还引发了一场无法停止的大变革,为整个Ja va社团带来了巨大的潮水般的商业机会。[1] Java技术及其应用将有更大的发展。据IDC预计,自2001年起的其后5年内,采用Jav a的IT产品的价值将翻番,在2006年将达到4.53亿美元,年增长率为14.9%。截止到2003 年5月,注册Java Developer Connection (JDC)的Java开发商超过300万人,对JRE(Java运行环境)的下载达7,200万次。Sun在Jav aOne 2003大会上确定的目标是,在3~5年内使Java技术开发商从今天的300万发展到1,000万 ,以支持Java技术这一全球领先技术平台的显赫地位。 Java Web,是用Java技术来解决相关web互联网领域的技术总和。web包括:web服务器和web客 户端两部分。Java在客户端的应用有java applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第 三方框架等等。Java技术对Web领域的发展注入了强大的动力。主要框架编辑。Java的W eb框架虽然各不相同,但基本也都是遵循特定的路数的:使用Servlet或者Filter拦截请 求,使用MVC的思想设计架构,使用约定,XML或 Annotation实现配置,运用Java面向对象的特点,面向抽象实现请求和响应的流程,支 持Jsp,Freemarker,Velocity等视图。 JSP优点:Java EE标准,这意味着有很大的市场需求和更多的工作机会,上手快速,并且相对容易有大 量可用的组件库。 JSP缺点: 大量的JSP标签,对REST和安全支持不好,没有一个统一的实现。既有SUN的实现,又有 Apache的实现——MyFaces。 Spring MVC优点: 对Spring MVC覆盖绑定(overriding binding)、验证(validation)等提供生命周期管理;与许多表示层技术/框架无缝集 成:JSP/JSTL、Tiles、Velocity、FreeMarker、Excel、XSL、PDF 等。便于测试——归功于IoC。 Spring MVC缺点: 大量的XML配置文件,太过灵活——没有公共的父控制器,没有内置的Ajax支持。 2 HTML语言: 超文本标记语言,标准通用标记语言下的一个应用。"超文本"就是指页面内可以包含 图片、链接,甚至音乐、程序等非文字元素。超文本标记语言的结构包括"头"部分(英 语:Head)、和"主体"部分(英语:Body),其中"头"部提供关于网页的信息,"主体" 部分提供网页的具体内容。 万维网上的一个超媒体文档称之为一个页面(外语:page)。作为一个组织或者个人 在万维网上放置开始点的页面称为主页(外语:Homepage)或首页,主页中通常包括有 指

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧