`
yanghuidang
  • 浏览: 966796 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

java中将数据和图片导出到Excel文件中

 
阅读更多

public ActionForward picExcel(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response)throws Exception {
response.reset();
response.setContentType("application/vnd.ms-excel");
ServletContext context = this.getServlet().getServletContext();
try {
String path = context.getRealPath("/reports/hab/apsfa/PicStat.xls");//导出的Excel文件在服务器上的输出路径
java.io.File reportFile1 =
new File(context.getRealPath("/reports/hab/apsfa/statPic.xls"));//此Excel文件是服务器上的,一个包含一张统计图片的Excel模板
java.io.FileInputStream fos = new FileInputStream(reportFile1);//文件输入流
java.io.FileOutputStream os = new FileOutputStream(path);//文件输出流

String barName =
FileHelper.getUploadDir() + "/" + "collentResult2.jpg";//要导出到Excel文件中的图片路径

org.apache.poi.poifs.filesystem.POIFSFileSystem fs = new POIFSFileSystem(fos);
org.apache.poi.hssf.usermodel.HSSFWorkbook wb = new HSSFWorkbook(fs);
org.apache.poi.hssf.usermodel.HSSFSheet sheet = wb.getSheetAt(0);//Excel文件中的第一个工作表
org.apache.poi.hssf.usermodel.HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
org.apache.poi.hssf.usermodel.HSSFClientAnchor anchor =new HSSFClientAnchor(
0,0,350,100,(short) 0,1,(short) 10,10);

HkSfaStatBC bc = new HkSfaStatBCImpl();//后台实现类 --结果统计
HkSfaActivityBC abc = new HkSfaActivityBCImpl();//后台实现类 --审计活动
String activitypk = request.getParameter("activitypk");//活动PK
List childGroups = abc.getChildgroup(activitypk);//得到此活动的所有小组

double[][] data = bc.problemCollect(activitypk);//得到统计结果,一个二维数组

org.apache.poi.hssf.usermodel.HSSFRow row = sheet.createRow(11);//在第一个工作表中创建一行(第12行)
for (int k = 0; k < childGroups.size(); k++) {
ApSfaGroupactivity activityGroup =(ApSfaGroupactivity) childGroups.get(k);//ApSfaGroupactivity为活动小组的Pojo
org.apache.poi.hssf.usermodel.HSSFCell cell = row.createCell((short) (k + 1));//在row中创建单元格
cell.setEncoding(HSSFCell.ENCODING_UTF_16);//设置编码
cell.setCellValue(activityGroup.getName());//给单元格设置值
}

/* 同前一个循环,给Excel添加数据 */
String[] strs ={ "不适用", "符合", "整改关闭", "不符合", "未检查", "检查数量", "已选择总数" };
for (int i = 12; i < strs.length + 12; i++) {
org.apache.poi.hssf.usermodel.HSSFRow row1 = sheet.createRow(i);
for (int j = 0; j < data[0].length + 1; j++) {
org.apache.poi.hssf.usermodel.HSSFCell cell = row1.createCell((short) j);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
if (j == 0) {
cell.setCellValue(strs[i - 12]);
} else {
int a = (int) data[i - 12][j - 1];
cell.setCellValue(a);
}
}
}

java.io.File jpgfile = new File(barName);//barName 为统计图片在服务器上的路径
org.apache.commons.io.output.ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();//字节输出流,用来写二进制文件
java.awt.image.BufferedImage bufferImg = ImageIO.read(jpgfile);
javax.imageio.ImageIO.write(bufferImg, "jpg", byteArrayOut);

patriarch.createPicture(anchor,wb.addPicture(
byteArrayOut.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG));//将统计图片添加到Excel文件中
wb.write(os);
os.close();
net.sf.excelutils.ExcelUtils.addValue("actionServlet", this);
String config = null;

config = "/reports/hab/apsfa/PicStat.xls";
response.setHeader("Content-Disposition","attachment; filename=/"" + "PicStat.xls/"");
net.sf.excelutils.ExcelUtils.export(getServlet().getServletContext(),config,response.getOutputStream());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}

/*

相关Jar包和excel文件在我的资源中有,去下载就是了,

地址为:http://download.csdn.net/source/313015

*/

分享到:
评论

相关推荐

    java中将数据和图片导出到Excel文件

    ### Java中将数据和图片导出到Excel文件 在Java编程环境下实现数据及图片导出至Excel文件是一项常见的任务,特别是在处理报表、数据分析等场景时。本文将详细解析如何通过Java代码来完成这一过程,包括如何创建...

    java导出excel(写入到excel后再下载)示例

    Java导出Excel是Java开发中常见的需求,尤其在数据分析、报表生成或数据交换场景中。本示例资源提供了一个RAR压缩包,包含了实现这一功能的源代码,主要讲解了两个核心部分:一是如何将数据写入Excel文件并保存在...

    将数据库数据导出到word excel txt文件中源码。

    本篇将详细讲解如何使用源码实现从数据库中导出数据到Word、Excel和TXT文件。 首先,让我们了解一下这三个文件格式的特点: 1. **Word**:Microsoft Word是一款流行的文档处理软件,适用于创建结构化文档,如报告...

    java中将多个excel打包成zip文件下载.rar

    在Java编程环境中,将...总之,Java中将多个Excel文件打包成ZIP并下载涉及到文件I/O操作、ZIP文件处理以及Web服务响应的设置。理解这些知识点对于Java开发者来说至关重要,尤其在处理大量数据导出或文件分发的场景下。

    java导出Excel文件.pdf

    在本文档中,我们将深入探讨如何使用Java技术栈实现导出Excel文件的功能。文档标题为“java导出Excel文件.pdf”,描述了从导入依赖、配置文件、前端实现到后端处理的完整流程。涉及到的技术标签包括POI、Vue、Spring...

    javaweb JSP页面导出和导入excel表格

    4. **处理数据**:将解析的数据保存到数据库或其他存储结构中,可能需要进行数据验证和清洗。 5. **错误处理**:检查读取过程中可能出现的异常,如文件格式不正确、数据无法转换等。 三、示例代码片段 ```java //...

    将数据库的内容导出到excel

    在许多情况下,我们需要将数据库中的大量数据导出到Excel表格,以便于分析、报表制作或共享。本教程将详细讲解如何使用集成开发环境Myeclipse来实现这一功能,非常适合初学者学习。 1. **Myeclipse简介** ...

    导入和导出excel

    在编程环境中,导入和导出Excel文件是常见的数据操作需求,尤其是在Java领域。本篇将详细讲解如何利用Java进行Excel的导入与导出。 首先,我们要了解Java中常用的库来处理Excel文件。其中最常用的是Apache POI库,...

    将JTabel表中的数据导入到Excel中

    该函数实现了将JTable中的数据导出到Excel中。

    java 文件导出为execl

    总之,Java中将数据导出为Excel涉及的主要知识点有:使用Apache POI库,理解Excel文件的XML结构,以及通过Java I/O进行文件操作。通过实践和学习,你可以掌握这项技能,轻松实现从Java应用程序导出数据到Excel文件的...

    poi导出数据到excel里

    通常,这个类会有一个静态方法,接收数据集合和输出文件路径作为参数,然后创建工作簿、工作表、行和单元格,将数据填充到Excel中,最后保存文件。为了具体了解`ExcelUtil`的实现细节,你需要查看源代码。如果你遇到...

    java导出Excel

    标签“导出 Excel”表明这是关于如何在Java中将数据导出到Excel文件的过程,而提供的压缩包文件可能包含了具体的代码示例或文档,帮助开发者更好地理解和实现这个功能。在实际项目中,结合这些资源,你可以构建出...

    list导出为excel,cvs

    总之,通过Apache POI库和简单的文件I/O操作,我们可以轻松地在Java中将`List`数据导出为Excel和CSV格式,这对于数据处理和分析是非常有用的。CSDN等在线资源提供了丰富的学习材料,帮助开发者快速掌握这些技能。

    xamarin/android 导出excel第三方dll文件

    本篇将详细讲解如何在Xamarin.Android项目中使用POI库来导出Excel,并涉及到DLL文件的打包和使用。 POI是Apache软件基金会的一个开源项目,它提供了Java API来处理Microsoft Office格式的文件,包括Excel。在...

    java\JavaScript利用ActiveX导出Excel,Word .doc

    总之,本文介绍了一种利用JavaScript和ActiveX对象在Internet Explorer中将HTML表格数据导出到Excel和Word的技巧。尽管这种方法在现代Web开发中已经不再常见,但它仍然是一种了解JavaScript与桌面应用交互的示例,...

    java项目将数据导出为office文件的jar包

    Java项目中将数据导出为Office文件是一项常见的需求,特别是在数据处理、报表生成或数据分析场景中。Apache POI 是一个非常流行的开源库,专门用于处理Microsoft Office格式的文件,包括Excel(XLS、XLSX)、Word...

    POI导出数据到EXCEL

    本文将详细介绍如何利用Apache POI在Java Web环境中将数据导出到Excel。 首先,理解Apache POI的基本概念。POI提供了HSSF(Horrible Spreadsheet Format)用于处理老版本的Excel(.xls),而XSSF用于处理新版本的...

    导出jsp页面为excel文档

    这种方式利用了浏览器对MIME类型的识别能力以及响应头中的`Content-Disposition`字段来模拟Excel文件的发送过程,从而实现了JSP页面内容到Excel文件的导出。 4. **扩展应用**: - **动态生成Excel内容**:可以在...

    React获取Java后台文件流并下载Excel文件流程解析

    React获取Java后台文件流并下载Excel文件流程解析是指在React前端应用程序中,通过axios库发送POST请求到Java后台服务器,以获取Excel文件流,并将其下载到本地计算机中。该过程涉及到Java后台服务器的响应头设置、...

Global site tag (gtag.js) - Google Analytics