首页 java导出图片到excel表格

java导出图片到excel表格

举报
开通vip

java导出图片到excel表格java导出图片到excel表格 篇一:java生成excel图表 需要导包:jfreechart-1.0.8a.jar和jcommon-1.0.12.jar 建一个java类 CreateChartServiceImpl 类定义如下 单独运行此类在e:\test下看图片效果 剩下的自己改吧 package Excel.tools; import java.awt.Color; import java.awt.Font; import java.io.File; import java.io.F...

java导出图片到excel表格
java导出图片到excel 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 格 篇一:java生成excel图表 需要导包:jfreechart-1.0.8a.jar和jcommon-1.0.12.jar 建一个java类 CreateChartServiceImpl 类定义如下 单独运行此类在e:\test下看图片效果 剩下的自己改吧 package Excel.tools; import java.awt.Color; import java.awt.Font; import java.io.File; import java.io.FileOutputStream; import java.text.DecimalFormat; import java.text.NumberFormat; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.CategoryLabelPositions; 1 import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.axis.ValueAxis; import org.jfree.chart.labels.StandardCategoryItemLabelGenerator; import org.jfree.chart.labels.StandardPieSectionLabelGenerator; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PiePlot3D; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.BarRenderer; import org.jfree.chart.renderer.category.LineAndShapeRenderer; import org.jfree.chart.renderer.category.StackedBarRenderer; import org.jfree.chart.title.TextTitle; import org.jfree.data.category.CategoryDataset; import org.jfree.data.general.DatasetUtilities; import org.jfree.data.general.DefaultPieDataset; import org.jfree.data.general.PieDataset; /** * 实际取色的时候一定要16位的,这样比较准确 * 2 * @author new */ public class CreateChartServiceImpl { private static final String CHART_PATH = E:/test/; public static void main(String[] args) { } // TODO Auto-generated method stub CreateChartServiceImpl pm = new CreateChartServiceImpl(); // 生成饼状图 pm.makePieChart(); // 生成单组柱状图 pm.makeBarChart(); // 生成多组柱状图 pm.makeBarGroupChart(); // 生成堆积柱状图 pm.makeStackedBarChart(); // 生成折线图 pm.makeLineAndShapeChart(); /** * 生成折线图 */ public void makeLineAndShapeChart() { double[][] data = new double[][] { { 672, 766, 223, 540, 126 }, { 325, 521, 210, 340, 106 }, { 332, 256, 523, 240, 526 } }; String[] rowKeys = { 苹果, 梨子, 葡萄 }; String[] columnKeys = { 北京, 上 海, 广州, 成都, 深圳 }; CategoryDataset dataset = getBarData(data, rowKeys, columnKeys); createTimeXYChar(折线图, x轴, y轴, dataset, lineAndShap.jpg); } /** * 生成分组的柱状图 */ public void makeBarGroupChart() { double[][] data = new 3 double[][] { { 672, 766, 223, 540, 126 }, { 325, 521, 210, 340, 106 }, { 332, 256, 523, 240, 526 } }; String[] rowKeys = { 苹 果, 梨子, 葡萄 }; String[] columnKeys = { 北京, 上海, 广州, 成都, 深圳 }; CategoryDataset dataset = getBarData(data, rowKeys, columnKeys); createBarChart(dataset, x坐标, y坐标, 柱状图, barGroup.png); } /** * 生成柱状图 */ public void makeBarChart() { double[][] data = new double[][] { { 672, 766, 223, 540, 126 } }; } String[] rowKeys = { 苹果 }; String[] columnKeys = { 北京, 上海, 广州, 成都, 深圳 }; CategoryDataset dataset = getBarData(data, rowKeys, columnKeys); createBarChart(dataset, x坐标, y坐标, 柱状图, bar.png); /** * 生成堆栈柱状图 */ public void makeStackedBarChart() { double[][] data = new double[][] { { 0.21, 0.66, 0.23, 0.40, 0.26 }, { 0.25, 0.21, 0.10, 0.40, 0.16 } }; String[] rowKeys = { 苹果, 梨子 }; String[] columnKeys = { 北京, 上海, 广州, 成都, 深圳 }; CategoryDataset dataset = getBarData(data, rowKeys, columnKeys); createStackedBarChart(dataset, x坐标, y坐标, 柱状图, stsckedBar.png); } /** * 生成饼状图 */ public void makePieChart() { double[] data = { 9, 91 }; String[] keys 4 = { 失败率, 成功率 };} createValidityComparePimChar(getDataPieSetByUtil(data, keys), 饼状图,pie2.png, keys); // 柱状图,折线图 数据集 public CategoryDataset getBarData(double[][] data, String[] rowKeys,String[] columnKeys) { return DatasetUtilities .createCategoryDataset(rowKeys, columnKeys, data); } // 饼状图 数据集 public PieDataset getDataPieSetByUtil(double[] data,String[] datadescription) { if (data != null && datadescription != null) { if (data.length == datadescription.length) {DefaultPieDataset dataset = new DefaultPieDataset(); for (int i = 0; i < data.length; i++) { dataset.setValue(datadescription[i], data[i]); } return dataset; } } return null; } /** * 柱状图 * 5 *@param dataset *数据集 * @param xName *x轴的说明(如种类,时间等) * @param yName *y轴的说明(如速度,时间等) * @param chartTitle *图标题 * @param charName *生成图片的名字 * @return */ public String createBarChart(CategoryDataset dataset, String xName, String yName, String chartTitle, String charName) { JFreeChart chart = ChartFactory.createBarChart(chartTitle, // 图表标题 xName, // 目录轴的显示标签 yName, // 数值轴的显示标签 dataset, // 数据集 PlotOrientation.VERTICAL, // 图表方向:水平、垂直 true, // 是否显示图例(对于简单的柱状图必须是false) 6 false, // 是否生成工具 false // 是否生成URL链接 ); Font labelFont = new Font(SansSerif, Font.TRUETYPE_FONT, 12); /* * VALUE_TEXT_ANTIALIAS_OFF表示将文字的抗锯 齿关闭, * 使用的关闭抗锯齿后,字体尽量选择12到14号的宋体 字,这样文字最清晰好看 */ // chart.getRenderingHints().put(RenderingHints.KEY_TEXT _ANTIALIASING,RenderingHints.V ALUE_TEXT_ANTIALIAS_OFF); chart.setTextAntiAlias(false); chart.setBackgroundPaint(Color.white); // create plot CategoryPlot plot = chart.getCategoryPlot(); // 设置横虚线可见 plot.setRangeGridlinesVisible(true); // 虚线色彩 7 plot.setRangeGridlinePaint(Color.gray); // 数据轴精度 NumberAxis vn = (NumberAxis) plot.getRangeAxis(); // vn.setAutoRangeIncludesZero(true); DecimalFormat df = new DecimalFormat(#0.00); vn.setNumberFormatOverride(df); // 数据轴数据标签的 显示格式 // x轴设置 CategoryAxis domainAxis = plot.getDomainAxis(); domainAxis.setLabelFont(labelFont);// 轴标题 domainAxis.setTickLabelFont(labelFont);// 轴数值 // Lable(Math.PI/3.0)度倾斜 // domainAxis.setCategoryLabelPositions(CategoryLabelPositions // .createUpRotationLabelPositions(Math.PI / 3.0)); domainAxis.setMaximumCategoryLabelWidthRatio(0.6f);// 横轴上的 Lable 是否完整显示 // 设置距离图片左端距离 domainAxis.setLowerMargin(0.1); // 设置距离图片右端距离 8 domainAxis.setUpperMargin(0.1); // 设置 columnKey 是否间隔显示 // domainAxis.setSkipCategoryLabelsToFit(true); plot.setDomainAxis(domainAxis); // 设置柱图背景色(注意,系统取色的时候要使用16位 的模式来查看颜色编码,这样比较准确) plot.setBackgroundPaint(new Color(255, 255, 204)); // y轴设置 ValueAxis rangeAxis = plot.getRangeAxis(); rangeAxis.setLabelFont(labelFont); rangeAxis.setTickLabelFont(labelFont); // 设置最高的一个 Item 与图片顶端的距离 篇二:Java导出excel表格1 【Java】导出excel表格 修改浏览权限 | 删除 package jxlTest; import java.io.FileOutputStream; import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; 9 import jxl.*; import jxl.format.Alignment; import jxl.format.Border; import jxl.format.BorderLineStyle; import jxl.format.CellFormat; import jxl.write.Boolean; import jxl.write.Label; import jxl.write.Number; import jxl.write.WritableCellFormat; import jxl.write.WritableFont; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; public class JXLExample { /** * 数据库导出至Excel表格 */ public static void main(String[] args) { // 准备设置excel工作表的标题 String[] title = {编号,产品名称,产品价格,产品数量,生产日 期,产地,是否出口}; try { // 获得开始时间 10 long start = System.currentTimeMillis(); // 输出的excel的路径 String filePath = e:\\testJXL.xls; // 创建Excel工作薄 WritableWorkbook wwb; // 新建立一个jxl文件,即在e盘下生成testJXL.xls OutputStream os = new FileOutputStream(filePath); wwb=Workbook.createWorkbook(os); // 添加第一个工作表并设置第一个Sheet的名字 WritableSheet sheet = wwb.createSheet(产品清单, 0); Label label; for(int i=0;i<title.length;i++){ // Label(x,y,z) 代表单元格的第x+1列,第y+1行, 内容z // 在Label对象的子对象中指明单元格的位置和内容 label = new Label(i,0,title[i]); // 将定义好的单元格添加到工作表中 sheet.addCell(label); } // 下面是填充数据 /* * 保存数字到单元格,需要使用jxl.write.Number * 必须使用其完整路径,否则会出现错误 11 * */ // 填充产品编号 jxl.write.Number number = new jxl.write.Number(0,1,20071001); sheet.addCell(number); // 填充产品名称 label = new Label(1,1,金鸽瓜子); sheet.addCell(label); /* * 定义对于显示金额的公共格式 * jxl会自动实现四舍五入 * 例如 2.456会被格式化为2.46,2.454会被格式化为2.45* */ jxl.write.NumberFormat nf = new jxl.write.NumberFormat(#.##); jxl.write.WritableCellFormat wcf = new jxl.write.WritableCellFormat(nf); // 填充产品价格 jxl.write.Number nb = new jxl.write.Number(2,1,2.45,wcf); sheet.addCell(nb); // 填充产品数量 jxl.write.Number numb = new jxl.write.Number(3,1,200); sheet.addCell(numb); /* 12 * 定义显示日期的公共格式 * 如:yyyy-MM-dd hh:mm * */ SimpleDateFormat sdf = new SimpleDateFormat(yyyy-MM-dd); String newdate = sdf.format(new Date()); // 填充出产日期 label = new Label(4,1,newdate); sheet.addCell(label); // 填充产地 label = new Label(5,1,陕西西安); sheet.addCell(label); /* * 显示布尔值 * */ jxl.write.Boolean bool = new jxl.write.Boolean(6,1,true); sheet.addCell(bool); /* * 合并单元格 * 通过writablesheet.mergeCells(int x,int y,int m,int n);来实现的 * 表示将从第x+1列,y+1行到m+1列,n+1行合并 13 * * */ sheet.mergeCells(0,3,2,3); label = new Label(0,3,合并了三个单元格 ); sheet.addCell(label); /* * * 定义公共字体格式 * 通过获取一个字体的样式来作为 模板 个人简介word模板免费下载关于员工迟到处罚通告模板康奈尔office模板下载康奈尔 笔记本 模板 下载软件方案模板免费下载 * 首先通过web.getSheet(0)获得第一个sheet * 然后取得第一个sheet的第二列,第一行也就是产品名 称的字体* */ CellFormat cf = wwb.getSheet(0).getCell(1, 0).getCellFormat();WritableCellFormat wc = new WritableCellFormat(); // 设置居中 wc.setAlignment(Alignment.CENTRE); // 设置边框线 wc.setBorder(Border.ALL, BorderLineStyle.THIN); // 设置单元格的背景颜色 wc.setBackground(jxl.format.Colour.RED); label = new Label(1,5,字体,wc); 14 sheet.addCell(label); // 设置字体 jxl.write.WritableFont wfont = new jxl.write.WritableFont(WritableFont.createFont(隶书),20); WritableCellFormat font = new WritableCellFormat(wfont); label = new Label(2,6,隶书,font); sheet.addCell(label); // 写入数据 wwb.write(); // 关闭文件 wwb.close(); long end = System.currentTimeMillis(); System.out.println(----完成该操作共用的时间 是:+(end-start)/1000); } catch (Exception e) { System.out.println(---出现异常---); e.printStackTrace(); } } } 篇三:Java将数据导出Excel 使用java将数据导出EXCEL 15 1. 效果图 2. Struts2配置及代码 2.1. 配置 <action name=user_* class=userAction method={1}<result name=userList_page/pages/user_page/userList.jsp</result <result name=outToExcel type=stream <param name=inputNameinputStream</param <param name=contentDispositionattachment;filename=${fileNam</param </result </action 2.2. action代码 private UserService<User userService; private InputStream inputStream; private String fileName; private List<User users; //注:下面属性提供get*、set*方法 //调用Excel(自己定义,下面有)类方法 public String outUsersToExcel(){ Excel excel=new Excel(); 16 //要显示表格列名 excel.setColumns(new String[]{序号,姓名,性别,地址,创建时间}); //生成EXCEL文件名称 excel.setFileName(用户信息.xls); //文件表的头部标题 excel.setTitle(用户信息); //将要导出的用户信息 List<User userList=userService.getAllUsers(); List list=excel.getExcelContentList(); int i=1; for(User user:userList){ String[] row= { i+, user.getUserName()+, user.getSex()+, user.getAddress(), TimeUtil.getStrByDate(user.getCreateTime()) }; i++; list.add(row); //设置序号 17 if(i==Integer.parseInt(excel.getPerSheetRows())+1){ i=1; } } excel.setExcelContentList(list); //导出EXCEL this.inputStream=excel.outExcel(excel,this.inputStream,this.request); this.fileName=excel.getExcelFileName(excel.getFileName());return outToExcel; } 3. Excel属性类(自己定义,为了简化代码) public class Excel { public static Logger logger=Logger.getLogger(Excel.class); //Excel构造方法(初始化信息) @SuppressWarnings(unchecked) public Excel(){ propertiesTool=new=PropertiesTool(system.properties; excelContentList=new ArrayList(); } private PropertiesTool propertiesTool;//系统属性文件 18 private String title;//文件内容标题 private String filePath;//生成EXCEL的路径 private String folderName;//存放EXCEL文件的文件夹名 称 private String perSheetRows;//每张表显示的数量 private String[] columns;//EXCEL信息列的名称 private String condition;//查询的条件 private String fileName;//文件名称 @SuppressWarnings(unchecked) private List excelContentList;//导出数据(格式化后的 String数组形式的集合) 注:上面Excel中的属性自己要提供get*、set*方法 //导出Excel public InputStream outExcel(Excel excel,InputStream inputStream,HttpServletRequest request){ // OutToExcel里面有导出Excel具体方法的实现,下面具 体会结束 OutToExcel outToExcel=new OutToExcel(); //得到系统真实路径 String realPath = request.getSession().getServletContext().getRealPath(/); //生成EXCEL的路径 19 excel.setFilePath(realPath+excel.getFolderName()); try { //调用方法转化为EXCEL表 outToExcel.outExcel(excel); //下载时提示的文件名。 fileName= new String(excel.getFileName()); //输出EXCEL inputStream =new java.io.FileInputStream(filePath +/+fileName); } catch (Exception e) { logger.error(fileName+导出出现错误,e); } return inputStream; } //获取导出Excel的文件名称 public String getExcelFileName(String fileName){ try { fileName=new String(fileName.getBytes(gb2312),iso8859-1); } catch (Exception e) { logger.error(要导出的EXCEL文件名称出现错误,e); } 20 return fileName; } 4. 导出Excel具体实现的方法 //导出Excel的具体实现方法1(主要处理数据转换) public void outExcel(Excel excel) throws Exception{ String filepath=excel.getFilePath(); File path = new File(filepath);if(!path.exists()){path.mkdir(); } filepa th = filepath +/+ excel.getFileName() ; // 创建excel WritableWorkbook wwb; OutputStream os = null; WritableSheet sheet = null; os = new FileOutputStream(filepath); // 新建立一个JXL文件(一个JXL文件可包含多个工作 表) wwb = Workbook.createWorkbook(os); //每张工作表显示内容的条数 int sheetRows = Integer.parseInt(excel.getPerSheetRows());int i=0,j=0,beginNum=0,endNum=0; String title1; //循环读取数据,每次只读取perSheetRows行 for 21 (beginNum=0,i=sheetRows;i<excel.getExcelContentList().size()+sheetRows;i=i+sheetRows){ j++;//sheet个数。 endNum=i; if (sheetRowsexcel.getExcelContentList().size()){ 相关热词搜索:导出 表格 图片 java excel javaweb导出 excel表格 java中导出excel表格 22
本文档为【java导出图片到excel表格】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_686908
暂无简介~
格式:doc
大小:49KB
软件:Word
页数:20
分类:
上传时间:2017-09-30
浏览量:116