package com.echarts.servlet;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import sun.misc.BASE64Decoder;
/**
* Servlet implementation class CreateServlet
*/
@WebServlet("/createServlet")
public class CreateServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String data = request.getParameter("img");
try {
String userName = System.getProperty("user.name");
System.out.println("userName:"+userName);
String filePath = "C:\\Users\\"+userName+"\\Desktop\\chart";
File file = new File(filePath);
if(!file.exists()){
file.mkdir();
}
String fileName = filePath +"\\"+ System.currentTimeMillis()+".png";
createImage(request, response, fileName, data);
createExcel(request, response, fileName);
} catch (Exception e) {
e.printStackTrace();
}
}
public void createImage(HttpServletRequest request, HttpServletResponse response,
String fileName, String data)
throws ServletException, IOException {
try {
String[] url = data.split(",");
String u = url[1];
// Base64解码
byte[] b = new BASE64Decoder().decodeBuffer(u);
// 生成图片
OutputStream out = new FileOutputStream(new File(fileName));
out.write(b);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void createExcel(HttpServletRequest request, HttpServletResponse response, String fileName)
throws ServletException, IOException {
// 第一步,创建一个webbook,对应一个Excel文件
HSSFWorkbook wb = new HSSFWorkbook();
// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet = wb.createSheet("echart");
HSSFRow row = null;
row = sheet.createRow(60);
/*HSSFCell headerCell = row.createCell(0);
headerCell.setCellType(HSSFCell.CELL_TYPE_BLANK);
headerCell.setCellValue("echarts");*/
row = sheet.createRow(60);
HSSFCell cells = row.createCell(0);
cells.setCellType(HSSFCell.CELL_TYPE_BLANK);
ByteArrayOutputStream outStream = new ByteArrayOutputStream(); // 将图片写入流中
BufferedImage bufferImg = ImageIO.read(new File(fileName));
ImageIO.write(bufferImg, "PNG", outStream); // 利用HSSFPatriarch将图片写入EXCEL
HSSFPatriarch patri = sheet.createDrawingPatriarch();
HSSFClientAnchor anchor = new HSSFClientAnchor(20, 20, 20, 20,
(short) 10, 20, (short) 20, 45);
patri.createPicture(anchor, wb.addPicture(
outStream.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG));
try {
OutputStream out = null;
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("echarts.xls", "UTF-8"));
out = response.getOutputStream();
wb.write(out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
MyProject.rar (94个子文件)
MyProject
.project 1KB
.mymetadata 300B
src
com
echarts
servlet
EchartsServlet.java 1KB
CreateServlet.java 4KB
PieServlet.java 2KB
WebRoot
WEB-INF
classes
com
echarts
servlet
EchartsServlet.class 1KB
CreateServlet.class 2KB
PieServlet.class 1KB
lib
commons-collections-3.2.jar 558KB
ezmorph-1.0.4.jar 84KB
commons-lang-2.4.jar 256KB
json-lib-2.2.2-jdk15.jar 141KB
commons-codec-1.10.jar 278KB
commons-beanutils-1.7.0.jar 184KB
poi-3.9-20121203.jar 1.78MB
commons-logging-1.1.jar 52KB
poi-ooxml-3.9-20121203.jar 915KB
poi-ooxml-schemas-3.9-20121203.jar 4.58MB
web.xml 422B
index.jsp 752B
echarts
esl
js.js 1KB
css.js 798B
esl.js 46KB
application.js 4KB
codemirror.js 204KB
.DS_Store 6KB
bootstrap-tooltip.js 10KB
jquery.min.map 137KB
echarts-all.js 950KB
bootstrap-collapse.js 5KB
echarts-original.js 1.17MB
dataDancing.js 9KB
echartsExample.js 3KB
bootstrap-affix.js 3KB
bootstrap-alert.js 2KB
echarts-original-map.js 1.53MB
bootstrap-popover.js 3KB
javascript.js 15KB
jquery.min.js 91KB
jquery.flexslider.js 51KB
jquery.js 91KB
bootstrap.js 54KB
bootstrap-button.js 3KB
bootstrap-typeahead.js 8KB
echartsConfig.js 35KB
google-code-prettify.js 14KB
bootstrap-modal.js 7KB
bootstrap-scrollspy.js 5KB
echartsDoc.js 5KB
echartsTheme.js 51KB
index2.js 6KB
require.js 15KB
echarts-map.js 608KB
html5shiv.js 2KB
echartsHome.js 12KB
bootstrap.min.js 28KB
echarts.js 285KB
jquery-1.10.2.min.map 137KB
index.js 11KB
esl.js 49KB
bootstrap-tab.js 3KB
echartsThemeDesigner.js 46KB
bootstrap-dropdown.js 4KB
bootstrap-transition.js 2KB
bootstrap-carousel.js 6KB
echartsfile
echarts-all.js 946KB
jquery.min.js 91KB
chart
line.js 13KB
map.js 439KB
venn.js 9KB
chord.js 20KB
wordCloud.js 35KB
treemap.js 9KB
funnel.js 9KB
radar.js 14KB
tree.js 10KB
k.js 5KB
force.js 29KB
eventRiver.js 6KB
bar.js 10KB
gauge.js 9KB
pie.js 12KB
scatter.js 29KB
echarts.js 354KB
chart
pie.jsp 3KB
line.jsp 4KB
test.jsp 3KB
map.jsp 7KB
bar.jsp 2KB
page
world.html 354B
china.html 355B
META-INF
MANIFEST.MF 39B
.myeclipse
.settings
org.eclipse.jdt.core.prefs 330B
.classpath 1KB
共 94 条
- 1
资源评论
QQ863240840
- 粉丝: 0
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功