poi导出Excel问题??????????? 我使用poi导出Excel,第一次导出Excel正确,第二次导出Excel时就多了一行数据,这是什么原因? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 多出来的一行是第一次导出的数据?POIFSFileSystem没有重新new吧? 数据没问题的话就是哪里的代码有问题 好好查一下不行就debug看看 //建立工作簿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列 /**创建一个空白的excel文件,这个是excel文件在java中的对象,java不是操作对象的语言吗? *那么就将一个excel文件映射成为一个对象。然而这个excel的对象在java就是HSSFWorkbook *那么也就是说:在java中你要使用poi来操作excel那么HSSFWorkbook对象就是你要操作的那个excel文件, *当HSSFWorkbook 对象是一个空对象的时候,就默认为你创建了一个excel文件 */ HSSFWorkbook hssfworkbook = new HSSFWorkbook(); 我现在的问题是:我用poi导出数据为Excel时出现这么个问题:如果第一次导出时为三条数据,导出正确那第二次导出时数据为一条,可Excel中显示为三条,其中第一条为要导出的数据,后两条为第一次导出时的数据这是什么原因???????????????? 你每次都输出到同一个excel文件自然会覆盖原先的纪录了。你要么就输出到不同文件,要么就记住上次的行数,然后输出到行数++上 不是这样的,我每次输出的都是不同的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 { } 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 { } PoiDemo这个类是你自己写的?那问题多半就出在pd.createExcelSheeet(areaOrganSeq,officeUserGroupSeq); pd.exportExcel(demoSheet,fos);另外你在servlet里创建HSSFSheet但没看到使用阿,直接在PoiDemo里创建不可以吗? 问题已经解决,是PoiDemo类中的数据共享造成的,谢谢各位. 在做Struts 项目时 服务器没报错 但网页报了 ‘500’的错误,请高手 解惑 displayTag标签导出数据怎么是科学技术表示的,这怎么处理的? 想做一个网上购物的网站,不知道订单表如何设计是好,请高人指点 急!!定期自动检测数据库中数据 ajax问题 weblogic session失效问题 请问:为什么传递参数,出现乱码? tomcat 启动问题 一个java语句比较,新手请教 關與JSP里的時間限制問題 FIREFOX iframe的清空问题 EL表达式疑惑
不行就debug看看
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列
*那么就将一个excel文件映射成为一个对象。然而这个excel的对象在java就是HSSFWorkbook
*那么也就是说:在java中你要使用poi来操作excel那么HSSFWorkbook对象就是你要操作的那个excel文件,
*当HSSFWorkbook 对象是一个空对象的时候,就默认为你创建了一个excel文件
*/
HSSFWorkbook hssfworkbook = new HSSFWorkbook();
你要么就输出到不同文件,要么就记住上次的行数,然后输出到行数++上
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 {
}
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 {
}
那问题多半就出在
pd.createExcelSheeet(areaOrganSeq,officeUserGroupSeq);
pd.exportExcel(demoSheet,fos);
另外你在servlet里创建HSSFSheet但没看到使用阿,直接在PoiDemo里创建不可以吗?