strus2将jsp页面的表格导出为excle表格

2023-10-20 22:33

本文主要是介绍strus2将jsp页面的表格导出为excle表格,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

只是为了自己以后忘记的时候方便查阅,也有借鉴别人的地方。多学多做多思考。
首先是struts的action配置
//fileName,inputStream都很重要
<action name="dcexcle"   class="SpscAction" method="exportExcel">
<result name="success" type="stream">
                 <param name="contentType">application/vnd.ms-excel</param>
                 <param name="contentDisposition">attachment;filename="${fileName}"</param>
                 <param name="inputName">inputStream</param>
        </result>
</action>
其次是action内容了
public String exportExcel() throws Exception{
        String name ="商品列表.xls";
        try {
                name = java.net.URLEncoder.encode(name, "UTF-8");
                fileName = new String(name.getBytes(), "iso-8859-1");
        } catch (UnsupportedEncodingException e) {
                log4j.error("字符转码失败");
        }
        return SUCCESS;
 }

public InputStream getInputStream() throws Exception       //getInputStream()一定要与InputStream对应,否则会出现异常
 {
        List<Object> productList = new ArrayList<Object>();
        try {
productList = spscService.selectsp(getParameter());
System.out.println(productList.toString());
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
        //第二步:构建excel表格,封装数据到excel                    
        HSSFWorkbook workbook = new HSSFWorkbook();
        HSSFSheet sheet = workbook.createSheet("sheet1");
        HSSFRow row = sheet.createRow(0);//创建第一行
        HSSFCell cell = row.createCell(0);//第一列
        cell.setCellValue("商品列表"); //行内容
        HSSFCellStyle style = workbook.createCellStyle(); //创建样式
        HSSFFont font = workbook.createFont(); //创建字体样式
        font.setFontHeight((short)(20*20)); //字体
        font.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL); //加粗
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER); //居中
        style.setFont(font); //设置字体样式  
        cell.setCellStyle(style); //设置样式
        sheet.addMergedRegion(new org.apache.poi.ss.util.Region(0,(short)0,0,(short)4)); //合并列
        row = sheet.createRow(1);//创建第一行
        cell = row.createCell(0); //创建第一列
        cell.setCellValue(new HSSFRichTextString("商品编号"));
        cell = row.createCell(1);//创建第二列
        cell.setCellValue(new HSSFRichTextString("商品名称"));      
        cell = row.createCell(2);//
        cell.setCellValue(new HSSFRichTextString("商品价格"));
        cell = row.createCell(3);//
        cell.setCellValue(new HSSFRichTextString("商品类型"));
        String SPID2;
        String SPNAME2;
        String SPPRICE2;
        String SPLX2;
        for (int i = 0; i < productList.size(); i++) {
        HashMap<String, Map> hm=new HashMap<String, Map>();
        hm.put("SP", (Map) productList.get(i));
        Map map=new HashMap();
        map.put("SPID", hm.get("SP").get("SPID"));
        map.put("SPNAME", hm.get("SP").get("SPNAME"));
        map.put("SPPRICE", hm.get("SP").get("SPPRICE"));
        map.put("SPLX", hm.get("SP").get("SPLX"));
        SPID2=map.get("SPID").toString();
        SPNAME2=map.get("SPNAME").toString();
        SPPRICE2=map.get("SPPRICE").toString();
        SPLX2=map.get("SPLX").toString();
                row=sheet.createRow(i+2);//创建第i+1行                      
                cell=row.createCell(0);//创建第一列
                cell.setCellValue(SPID2);                
                cell=row.createCell(1);//创建第二列
                cell.setCellValue(SPNAME2); 
                cell=row.createCell(2);
                cell.setCellValue(SPPRICE2);
                cell=row.createCell(3);
                cell.setCellValue(SPLX2);                
        }
        //第三步:写入输出流
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        try {
                workbook.write(baos);//写入
        } catch (IOException e) {
                e.printStackTrace();
        }
        byte[] ba = baos.toByteArray(); 
        ByteArrayInputStream bais = new ByteArrayInputStream(ba); 
        return bais;


 }
jsp页面就不贴了,也没有什么内容。excle表格填充的内容都是通过list.get(i)填充的。详细了解看另一篇自我笔记http://blog.csdn.net/ruoyang666/article/details/79080274

这篇关于strus2将jsp页面的表格导出为excle表格的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/250149

相关文章

SpringBoot集成EasyPoi实现Excel模板导出成PDF文件

《SpringBoot集成EasyPoi实现Excel模板导出成PDF文件》在日常工作中,我们经常需要将数据导出成Excel表格或PDF文件,本文将介绍如何在SpringBoot项目中集成EasyPo... 目录前言摘要简介源代码解析应用场景案例优缺点分析类代码方法介绍测试用例小结前言在日常工作中,我们经

SpringBoot+EasyPOI轻松实现Excel和Word导出PDF

《SpringBoot+EasyPOI轻松实现Excel和Word导出PDF》在企业级开发中,将Excel和Word文档导出为PDF是常见需求,本文将结合​​EasyPOI和​​Aspose系列工具实... 目录一、环境准备与依赖配置1.1 方案选型1.2 依赖配置(商业库方案)二、Excel 导出 PDF

一文详解如何使用Java获取PDF页面信息

《一文详解如何使用Java获取PDF页面信息》了解PDF页面属性是我们在处理文档、内容提取、打印设置或页面重组等任务时不可或缺的一环,下面我们就来看看如何使用Java语言获取这些信息吧... 目录引言一、安装和引入PDF处理库引入依赖二、获取 PDF 页数三、获取页面尺寸(宽高)四、获取页面旋转角度五、判断

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元

使用Python实现网页表格转换为markdown

《使用Python实现网页表格转换为markdown》在日常工作中,我们经常需要从网页上复制表格数据,并将其转换成Markdown格式,本文将使用Python编写一个网页表格转Markdown工具,需... 在日常工作中,我们经常需要从网页上复制表格数据,并将其转换成Markdown格式,以便在文档、邮件或

Python实现pdf电子发票信息提取到excel表格

《Python实现pdf电子发票信息提取到excel表格》这篇文章主要为大家详细介绍了如何使用Python实现pdf电子发票信息提取并保存到excel表格,文中的示例代码讲解详细,感兴趣的小伙伴可以跟... 目录应用场景详细代码步骤总结优化应用场景电子发票信息提取系统主要应用于以下场景:企业财务部门:需

Mac备忘录怎么导出/备份和云同步? Mac备忘录使用技巧

《Mac备忘录怎么导出/备份和云同步?Mac备忘录使用技巧》备忘录作为iOS里简单而又不可或缺的一个系统应用,上手容易,可以满足我们日常生活中各种记录的需求,今天我们就来看看Mac备忘录的导出、... 「备忘录」是 MAC 上的一款常用应用,它可以帮助我们捕捉灵感、记录待办事项或保存重要信息。为了便于在不同