社区
Web 开发
帖子详情
poi导出Excel问题???????????
LOVEYOULOVE
2008-10-21 11:11:32
我使用poi导出Excel,第一次导出Excel正确,第二次导出Excel时就多了一行数据,这是什么原因?
...全文
321
11
打赏
收藏
poi导出Excel问题???????????
我使用poi导出Excel,第一次导出Excel正确,第二次导出Excel时就多了一行数据,这是什么原因?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xstom19
2008-10-21
打赏
举报
回复
多出来的一行是第一次导出的数据?POIFSFileSystem没有重新new吧?
LOVEYOULOVE
2008-10-21
打赏
举报
回复
问题已经解决,是PoiDemo类中的数据共享造成的,谢谢各位.
xstom19
2008-10-21
打赏
举报
回复
PoiDemo这个类是你自己写的?
那问题多半就出在
pd.createExcelSheeet(areaOrganSeq,officeUserGroupSeq);
pd.exportExcel(demoSheet,fos);
另外你在servlet里创建HSSFSheet但没看到使用阿,直接在PoiDemo里创建不可以吗?
LOVEYOULOVE
2008-10-21
打赏
举报
回复
return mapping.findForward("saveExcel");不是这样的,我每次输出的都是不同的Excel文件
String areaOrganSeq = request.getParameter("areaOrganSeq");
String officeUserGroupSeq = request.getParameter("officeUserGroupSeq");
// System.out.println("++++++++++++++++++++++++++++++++++++++++++++++"+officeUserGroupSeq);
String fp = request.getParameter("flag");
HSSFWorkbook demoWorkBook = new HSSFWorkbook();
HSSFSheet demoSheet = demoWorkBook.createSheet("通讯录");
//得到当前时间
SimpleDateFormat dateformat1=new SimpleDateFormat("yyyyMMddHHmmssssss");
String time = dateformat1.format(new Date());
HttpSession session = request.getSession();
String fileName = time+".xls";
String folder = "Excel\\";
String fileName1 = folder + fileName;
folder = session.getServletContext().getRealPath("/")+folder;
if(!(new File(folder).isDirectory())) {
new File(folder).mkdir();
}
// HttpSession session = request.getSession();
String path = folder +fileName;
// System.out.println(path);
FileOutputStream fos = new FileOutputStream(path);
// System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"+fos.toString());
try {
PoiDemo pd = new PoiDemo();
pd.createExcelSheeet(areaOrganSeq,officeUserGroupSeq);
pd.exportExcel(demoSheet,fos);
fos.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
request.setAttribute("areaOrganSeq", areaOrganSeq);
request.setAttribute("excel", fileName1);
request.setAttribute("seq", officeUserGroupSeq);
System.out.println("fp:"+fp);
if("null".equals(fp) || null == fp || "".equals(fp)) {
return mapping.findForward("excel");
} else {
}
LOVEYOULOVE
2008-10-21
打赏
举报
回复
不是这样的,我每次输出的都是不同的Excel文件
处理生成Excel文件
String areaOrganSeq = request.getParameter("areaOrganSeq");
String officeUserGroupSeq = request.getParameter("officeUserGroupSeq");
// System.out.println("++++++++++++++++++++++++++++++++++++++++++++++"+officeUserGroupSeq);
String fp = request.getParameter("flag");
HSSFWorkbook demoWorkBook = new HSSFWorkbook();
HSSFSheet demoSheet = demoWorkBook.createSheet("通讯录");
//得到当前时间
SimpleDateFormat dateformat1=new SimpleDateFormat("yyyyMMddHHmmssssss");
String time = dateformat1.format(new Date());
HttpSession session = request.getSession();
String fileName = time+".xls";
String folder = "Excel\\";
String fileName1 = folder + fileName;
folder = session.getServletContext().getRealPath("/")+folder;
if(!(new File(folder).isDirectory())) {
new File(folder).mkdir();
}
// HttpSession session = request.getSession();
String path = folder +fileName;
// System.out.println(path);
FileOutputStream fos = new FileOutputStream(path);
// System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"+fos.toString());
try {
PoiDemo pd = new PoiDemo();
pd.createExcelSheeet(areaOrganSeq,officeUserGroupSeq);
pd.exportExcel(demoSheet,fos);
fos.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
request.setAttribute("areaOrganSeq", areaOrganSeq);
request.setAttribute("excel", fileName1);
request.setAttribute("seq", officeUserGroupSeq);
System.out.println("fp:"+fp);
if("null".equals(fp) || null == fp || "".equals(fp)) {
return mapping.findForward("excel");
} else {
}
xstom19
2008-10-21
打赏
举报
回复
你每次都输出到同一个excel文件自然会覆盖原先的纪录了。
你要么就输出到不同文件,要么就记住上次的行数,然后输出到行数++上
LOVEYOULOVE
2008-10-21
打赏
举报
回复
我现在的问题是:
我用poi导出数据为Excel时出现这么个问题:
如果第一次导出时为三条数据,导出正确
那第二次导出时数据为一条,可Excel中显示为三条,其中第一条为要导出的数据,后两条为第一次导出时的数据
这是什么原因????????????????
抬头望远,低头沉思
2008-10-21
打赏
举报
回复
[Quote=引用 2 楼 LOVEYOULOVE 的回复:]
这怎么new一个空的Excel文件
[/Quote]
/**创建一个空白的excel文件,这个是excel文件在java中的对象,java不是操作对象的语言吗?
*那么就将一个excel文件映射成为一个对象。然而这个excel的对象在java就是HSSFWorkbook
*那么也就是说:在java中你要使用poi来操作excel那么HSSFWorkbook对象就是你要操作的那个excel文件,
*当HSSFWorkbook 对象是一个空对象的时候,就默认为你创建了一个excel文件
*/
HSSFWorkbook hssfworkbook = new HSSFWorkbook();
youjianbo_han_87
2008-10-21
打赏
举报
回复
//建立工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
//建立Excel 页
HSSFSheet sheet = workbook.createSheet();
//设置Cell 宽度
private void setColumnWidth(HSSFSheet sheet)
{
//根据你数据里面的记录有多少列,就设置多少列
sheet.setColumnWidth((short) 0, (short) 3000);
sheet.setColumnWidth((short) 1, (short) 3000);
sheet.setColumnWidth((short) 2, (short) 3000);
}
已经建好了一个只有一个sheet的excel,3列
yiyi_wx
2008-10-21
打赏
举报
回复
数据没问题的话就是哪里的代码有问题 好好查一下
不行就debug看看
LOVEYOULOVE
2008-10-21
打赏
举报
回复
这怎么new一个空的Excel文件
POI
导出
excel
中文乱码
问题
博客围绕
POI
导出
Excel
中文乱码
问题
展开。作者使用Apache的
POI
组件
导出
Excel
,在前后端联调时出现“锟斤拷”乱码。经排查是服务转发导致编码改变。文中给出引入OSS存储桶、将数据存到前端、接口网络改直连、修改服务端转发方式等解决方案。
SSM 框架整合
POI
插件技术
导出
EXCEL
文件
本文介绍了在SSM框架下,如何结合
POI
插件实现复杂SQL查询结果的
EXCEL
导出
。通过在POM.xml中引入
POI
依赖,前端设置
导出
按钮触发后台SQL执行,后端Controller编写
导出
方法,实现数据封装并转化为
EXCEL
文件流。文章提供了一步步的详细步骤和代码示例。
poi
实现
Excel
文件
导出
【SpringBoot篇】
本文介绍了如何利用Apache
POI
库来
导出
Excel
文件,包括引入依赖、创建工具类以及通过实例演示文件
导出
过程。重点讲解了
POI
和HSSF的概念,并提供了相关文档链接。通过一个简单的案例展示了如何将数据封装到
Excel
中,适用于处理报表业务。
POI
下JAVA
导出
基于模板的
Excel
本文介绍了如何利用Java的
POI
库,结合模板来
导出
复杂格式的
Excel
文件。通过创建WritableWorkbook,读取
Excel
模板,然后将动态数据写入模板,最终生成特定格式的
Excel
。涉及步骤包括选择模板、创建可写Workbook、选择Sheet、写入单元格内容,并处理单元格格式。最后,关闭工作簿以释放资源。
POI
导入
导出
Excel
本文围绕
POI
操作
Excel
展开,介绍了
POI
相关概念,包括不同版本
Excel
的兼容性、WorkBook的三种实现类及其优缺点。详细阐述了
POI
写
Excel
的代码示例、性能对比、rowAccessWindowSize测试和样式设置,还说明了
POI
读
Excel
的代码示例、不同数据类型读取和公式读取等内容。
Web 开发
81,111
社区成员
341,727
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章