精华内容
下载资源
问答
  • echarts 生成统计图自动保存图片到服务器,并使用freemarker生成word。 1.项目工程截图如下: 需要echarts包和生成word的freemarker-2.3.8.jar包 2.index.jsp页面的代码: String path = ...

    echarts 生成统计图时,自动保存图片到服务器,并使用freemarker生成word。


    1.项目工程截图如下:


    需要echarts包和生成word的freemarker-2.3.8.jar包

    2.index.jsp页面中的代码:

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>ECharts 生成报表 并保存图片</title>
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
      </head>
      
      <body>
        <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
        <div id="main" style="height:400px"></div>
        <!-- ECharts单文件引入 -->
        <script src="<%=basePath %>js/echarts/build/dist/echarts.js"></script>
        <script type="text/javascript">
            // 路径配置
            require.config({
                paths: {
                    echarts: '<%=basePath %>js/echarts/build/dist'
                }
            });
            
            // 使用
            require(
                [
                    'echarts',
                    'echarts/chart/bar' // 使用柱状图就加载bar模块,按需加载
                ],
                function (ec) {
                    // 基于准备好的dom,初始化echarts图表
                    var myChart = ec.init(document.getElementById('main')); 
                    
                    var option = {
                        tooltip: {
                            show: true
                        },
                        legend: {
                            data:['销量']
                        },
                        xAxis : [
                            {
                                type : 'category',
                                data : ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
                            }
                        ],
                        yAxis : [
                            {
                                type : 'value'
                            }
                        ],
                        series : [
                            {
                                "name":"销量",
                                "type":"bar",
                                "data":[5, 20, 40, 10, 10, 20]
                            }
                        ]
                    };
            
                    // 为echarts对象加载数据 
                    myChart.setOption(option); 
                    setTimeout(exportImage, 2000);
                    function exportImage(){
    	                var data = "a="+encodeURIComponent(myChart.getDataURL("png"));
    				    var xmlhttp;
    				    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
    				        xmlhttp = new XMLHttpRequest();
    				    } else { // code for IE6, IE5
    				        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    				    }
    				    xmlhttp.open("POST","<%=path%>/servlet/saveImage",true);
    				    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    				    xmlhttp.onreadystatechange = function() {
    				        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
    				            alert("保存成功");
    				        }
    				    }
    				    xmlhttp.send(data);
    			    }
    			    
                }
            );
        </script>
    </body>
    </html>
    
    3.web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
    	xmlns="http://java.sun.com/xml/ns/javaee" 
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
      <display-name></display-name>	
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
      
      <servlet>
        <servlet-name>saveImage</servlet-name>
        <servlet-class>com.servlet.SaveImage</servlet-class>
      </servlet>
    
      <servlet-mapping>
        <servlet-name>saveImage</servlet-name>
        <url-pattern>/servlet/saveImage</url-pattern>
      </servlet-mapping>
    </web-app>
    
    4.SaveImage.java

    package com.servlet;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.word.WordUtil;
    
    import sun.misc.BASE64Decoder;
    import sun.misc.BASE64Encoder;
    
    public class SaveImage extends HttpServlet {
    	private static final long serialVersionUID = -1915463532411657451L;
    	 
        public void init() throws ServletException {  
           
        } 
        protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
        	
        }
     
        protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
        	String a = request.getParameter("a");
            try {
                String[] url = a.split(",");
                String u = url[1];
                // Base64解码
                byte[] b = new BASE64Decoder().decodeBuffer(u);
                WordUtil wordUtil = new WordUtil();
                String fileStr = wordUtil.saveFile(); 
                // 生成图片
                OutputStream out = new FileOutputStream(new File(fileStr+"\\test.png"));
                out.write(b);
                out.flush();
                out.close();
                
                //数据模拟,如果是真实编写,可以建service层,dao层进行数据的获取
                Map<String, Object> dataMap = new HashMap<String, Object>();
                dataMap = getData();
                //生产word
                wordUtil.createWord("2.ftl", fileStr+"\\test.doc", dataMap);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        
        public Map<String, Object> getData() {
        	Map<String, Object> dataMap = new HashMap<String, Object>();
        	WordUtil wordUtil = new WordUtil();
        	String fileStr = wordUtil.saveFile();
        	
        	dataMap.put("image", getImageStr(fileStr+"\\test.png"));
    		List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
    		for (int i = 0; i < 2; i++) {
    			Map<String,Object> map = new HashMap<String,Object>();
    			map.put("xuhao", i);
    			map.put("neirong", "内容"+i);
    			list.add(map);
    			
    		}
    		dataMap.put("list", list);
    		dataMap.put("info", "测试");
    		return dataMap;
        }
        public String getImageStr(String imgFile) {
    		InputStream in = null;
    		byte[] data = null;
    		try {
    			in = new FileInputStream(imgFile);
    			data = new byte[in.available()];
    			in.read(data);
    			in.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		BASE64Encoder encoder = new BASE64Encoder();
    		return encoder.encode(data);
    	}
    }
    
    5.WordUtil.java

    package com.word;
    
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStreamWriter;
    import java.io.Writer;
    import java.util.Map;
    
    import sun.misc.BASE64Encoder;
    import freemarker.template.Configuration;
    import freemarker.template.Template;
    import freemarker.template.TemplateException;
    
    public class WordUtil {
    	private Configuration configuration = null;
    
    	public WordUtil() {
    		configuration = new Configuration();
    		configuration.setDefaultEncoding("utf-8");
    
    	}
    
    	public void createWord(String templetName, String filePathName, Map<String, Object> dataMap) {
    		configuration.setClassForTemplateLoading(this.getClass(), "/com/word"); // FTL文件所存在的位置
    		Template t = null;
    		try {
    			// 获取模版文件
    			t = configuration.getTemplate(templetName);
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		// 生成文件的路径和名称
    		File outFile = new File(filePathName);
    		Writer out = null;
    		try {
    			out = new BufferedWriter(new OutputStreamWriter(
    					new FileOutputStream(outFile)));
    		} catch (FileNotFoundException e1) {
    			e1.printStackTrace();
    		}
    
    		try {
    			t.process(dataMap, out);
    		} catch (TemplateException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    
    	public String getImageStr(String imgFile) {
    		InputStream in = null;
    		byte[] data = null;
    		try {
    			in = new FileInputStream(imgFile);
    			data = new byte[in.available()];
    			in.read(data);
    			in.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		BASE64Encoder encoder = new BASE64Encoder();
    		return encoder.encode(data);
    	}
    	public String saveFile() {
    		String nowpath = System.getProperty("user.dir");
    		String path = nowpath.replace("bin", "webapps");
    		path += "\\"+"TestWeb"+"\\"+"word";
    		File tmp = new File(path);
    		if (!tmp.exists()) {
    			tmp.mkdirs();
    		}
    		return path;
    	}
    }
    
    6.模版的制作:

    1).新建word文档,内容如下图:


    2).把word文档另存为Word 2003 XML 文档,打开内容,如下图:


    在<w:tr>之前<#list list as list>,在</w:tr>之后加</#list>,如果不循环,不需要加。接在把图片生产的一大串字符改成${image},试情况改此文件的编码。

    3).把修改好的xml后缀改为ftl。模版做好,放在指定位置即可。跑完程序后,生产如下word:


    大功告成!有什么问题,大家一起讨论!


    爱生活,爱分享,爱康宝!

    展开全文
  • Eclipse设置自动保存

    很早之前就下载了Eclipse,一直也用的好好的,但是今天打开更改完代码后运行,控制台打印的结果竟然不变,仍然是打开第一次运行的结果,各种尝试,Clean,重启…原来是没有自动保存.做苹果开发的盆友可能要惊呆了,怎么没有自动保存,我们每次都是写完代码直接CMD+R的,CMD+S操作,说实话可能只在Word里面用过

    如何设置自动保存

    Eclipse -> Preferences -> General -> Workspace -> “Save automatically before build

    这里写图片描述

    Eclipse ->Preferences -> Run/Debug -> Launching -> Save dirty editors before launching 设置为 Always

    这里写图片描述

    展开全文
  • 教你恢复Word2010上次未保存的文档

    千次阅读 2017-11-14 09:32:56
    我们辛辛苦苦在Word中编写好了文档,却由于一大意,或者停电死机等客观原因,使文档没来得及保存就关闭Word了,难道就没有办法恢复了吗?答案是有的,就跟我们电脑的回收站一样,Word也有此项功能。 ①打开...
    我们辛辛苦苦在Word中编写好了文档,却由于一时大意,或者停电死机等客观原因,使文档没来得及保存就关闭Word了,难道就没有办法恢复了吗?答案是有的,就跟我们电脑中的回收站一样,Word也有此项功能。

    ①打开Word2010,输入文档之后直接关闭,选择不保存。

    选择不保存

    ②重新打开Word2010,点击文件--选项,下面我要做的是将刚才的文章恢复。

    选项

    ③在保存标签里面,点击自动恢复文件位置选项右侧的浏览按钮。

    浏览

    ④打开文件夹,看到一个以一连串数字命名的文件夹。

    打开文件夹

    ⑤双击打开这个文件夹,打开—.docx。

    打开文档

    ⑥文档成功恢复,大家可以按照这个办法恢复文档啦。

    成功恢复http://www.wdashi.com/
    展开全文
  • word保存时出现tmp文件、保存出错的恢复方法 作者XP系统上安装卡巴斯基反病毒 2009 后,使用office 2003,经常会同文件夹下出现随机命名,护展名为tmp的文件。作者多次重装系统,重装office都没解决这个问题,...

    <--好消息!好消息!好消息!

    粉丝超过2000的公众号主快来接单吧,快来领取你的第一笔广告费。(粉丝数不够的小伙伴,请私信我一并解决)
    新用户注册红包1.8元,新用户注册并接单红包9.9元。
    绑定有赚并接单成功的小伙伴,来找我领大红包。
    具体操作指导可加我微信(lizaozhizao)私信我。(本人亲测,真实有效,非广告)
    点击下面链接直接注册(选流量主)。
    2021年,流量变现年,不要错过,只要有公众号,有视频号,有流量,就能变现。大家都在做自媒体变现,你为什么也不尝试一下呢?

    https://a.newrank.cn/link/tkfomO

    -->

    word保存时出现tmp文件、保存出错的恢复方法

       作者XP系统上安装卡巴斯基反病毒 2009 后,在使用office 2003时,经常会在同文件夹下出现随机命名,护展名为tmp的文件。作者多次重装系统,重装office都没解决这个问题,后面经过查看,在编辑文件时,每点击工具栏上的“保存”命令一次,就会出现出现一个tmp文件,打开查看时,里面的内容时你当前编辑的文件内容一样。这些tmp文件在电脑重启前无法删除。

    最严重的是,保存时出现用户权限不够、保存出错等问题,造成文件消失,此时系统自动挽救文件,同文件夹下出现护展名为txt的挽救文档,打开时只有乱码和数字。

    恢复文件的方法:
    1、单击打开我的电脑,单击菜单栏上的“工具”选项,打开“文件夹选项”,选中“查看”下高级设置里“显示所有文件和文件夹”后,取消“隐藏已知文件类型的护展名”复选框前的“√”,点下面的“确定”返回。
    2、在你保存文档出错的地方,你会看到很多护展名为tmp的隐藏文件,将所有文件在“详情信息”下按“修改时间”顺序排列,你可以找到一个修改时间离当前时间最近的tmp文件,将其护展名改为doc,打开后,里面的内容既为你在保存出错之前,最后一次成功保存的内容。

    经过作者多次的试验及在网上搜索,确定出现这类问题的原因是部分卡巴斯基自动保护文件的原因。经与卡巴斯基中国区服务人员联系,确定解决方法如下:
    1、打开卡巴斯基主程序界面,打开“设置”对话框,点击左边的“威胁和排除”,点击打开右边的“信任区域”对话框。
    2、点击“信任程序”选项下的“添加”按钮,在“应用程序”中选中word程序”(若没有,则用“游览”找到安装目录下的word启动和序)后弹出“应用程序排除”对话框,选中排除右边的三个复选框后点“确定”。
    3、参照第2、步,将excel等程序也添加到“信任程序”中。点击后返回,完成设置。
    作者使用的操作系统是OEM版的XP Home Edition 版本 2002 Service Pack 3 ,office为2003版,杀毒软件为正版卡巴斯基反病毒 2009 使用上述方法后解决问题。

    展开全文
  • 自动保存程序的设计与实现

    千次阅读 2009-01-16 15:39:00
    自动保存程序的设计与实现 段通晓 吕强 杨季文 摘要:介绍了自动保存程序在智能UPS监控软件的应用,给出了Windows环境下如何用VC++实现该自动保存程序的方法。关键词:智能UPS,自动保存,多线程,模拟键盘...
  • 尝试使用干净启动来暂时禁用计算机启动所加载的第三方程序来进一步做测试: 如何Windows 执行干净启动步骤  具体操作步骤: 1. 按Windows+R, 然后输入框输入msconfig,按回车,弹出系统配置对话框。 ...
  • MFC应用程序中动态嵌入Word文档

    千次阅读 2009-02-06 11:20:00
    摘要:本文通过对自动化等COM技术的应用介绍了一种MFC应用程序中动态嵌入Microsoft Word文档的简单方法。使MFC应用程序中即可打开、显示和存储外部Word文档。 关键字:VC++、MFC、COM、自动化引言 Microsoft ...
  • MFC使用自动化接口操作WORD

    千次阅读 2012-04-28 18:26:14
    原文:怎么用VC读取Word文本框的内容(http://www.cnitblog.com/lifw/articles/vcpp_officeword.html) 感恩这位热心的编程高手已经为我们做好了不少工作,让我可以省了不不少的工作.如果让我自己重新来做,像...
  • 画好图后点击“编辑”,之后点击“保存图窗” 之后粘贴到Word中就可以了
  • 用Python生成Word文档 ...3.文档对象加入段落文本,表格,图像等,并指定其样式 4.保存文档 注:本库仅支持生成Word2007以后版本的文档类型,即扩展名为.docx(ps:我用的WPS和word2019亲测也是阔以滴) 第一部分
  • Word中标题、图表自动编号的方法

    千次阅读 2016-03-23 11:43:04
    一般情况下,Word文档需要为标题提供连续编号,默认的标题样式并没有自动编号的功能,系统默认的标题样式效果如下图: ...NO1:打开Office Word应用程序,新建一份空白文档,文档输入如下
  • 程序突然停电了,我记得word有每隔几分钟自动保存代码的功能,VS怎么没找到,虽说是因该常按保存快捷键,可不设自动保存功能也说不过去吧?谁知道哪里设自动保存
  • Eclipse 保存文件时自动格式化代码 很多同学不知道Eclipse有个很有用的功能,就是自动格式源代码的功能,一般大家都是直接Ctrl+Shift+F手动格式化,多浪费时间。  其实Eclipse里已经带有自动格式化功能了,默认...
  • 方法1:使用自动恢复功能Mac上恢复未保存Word文档 Microsoft Word for Mac包括一个自动恢复选项,可以帮助您恢复未保存Word文件。默认情况下它将自动打开,并每10分钟保存一次打开的Word文件。如果处理文档...
  • 缩小word文件大小第一招: Word在保存DOC文件只是把一些后来的信息存入,这样就会出现哪怕您删除了文档的内容也会使它的文件越来越大的情况。这时候,只要我们使用“另存为”命令,Word则会重新将信息进行整理...
  • java操作word自动填写word表格

    千次阅读 2018-09-26 06:51:25
    于是想做一个工具,输入word文件所对应的xml格式文件,自动填写表格。 word其实可以转化成xml来处理,这一步可以手工用word把.doc格式文件另存为.xml格式。word的表格,每一行对应一个&lt;w:tr&gt;标签;...
  • 从EXCEL中自动产生WORD文件

    千次阅读 2013-07-05 16:07:36
    昨天帮同事做了一道“作业”,具体应用的场景不能详细地透露,大体上就是如题。用的 Office 是 2010 版本,解决步骤是: EXCEL用几列存储规定的内容。比如B列存负责输出,把...该巨集的作用是:从那些文本文件一一
  • C++ 自动化操作Word

    千次阅读 2013-05-02 10:42:45
    介绍: 这个事例演示了如何写C++代码来创建并操作一...Word实例,创建一个新文档,插入一个段落,保存文档,关闭Word程序并清理使用的COM资源。 利用VC++实现有三种基本方法: 1.使用#import指令和智能指针操作Word
  • MFC应用程序中动态嵌入Word文档

    千次阅读 2007-11-30 17:34:00
    原帖地址:http://www.hur.cn/bbs/dispbbs.asp?boardid=98&id=22772 (帖有图片或下载请点击原帖查看) 第 1 楼
  • MFC应用程序中浏览PDF、Word文件

    千次阅读 2014-06-30 11:42:16
    作 者:郎锐原 出 处:《CSDN开发高手》杂志发 布 者:高山发布类型:转载发布日期:2006-02-23今日/总浏览:4/4663摘要: 本文主要介绍了一种MFC应用程序中实现起来比较方便的浏览PDF、Word格式文档文件的方法,...
  • 正文:近日因工作需要,需要编制一份Word文档,并需要为标题提供编号,而系统默认的标题样式并没有自动编号的功能,系统默认的标题样式效果如下图: 因各种层级的标题数量比较大,且编制过程会不停的增、删...
  • HyperMesh实现自动保存功能

    千次阅读 2020-07-23 14:03:12
    这时我们多么渴望Hypermesh也具有类似word等软件的自动保存功能该多好。   其实Hypermesh安装目录下自带了自动保存功能的tcl脚本,下面我将介绍如何使用。 点击autosave.tcl下载自动保存的tcl脚本; 打开Hyper...
  • 如何在Word中排出漂亮的代码

    万次阅读 多人点赞 2014-12-08 15:58:35
    引言 学数学和计算机,当然... 从Matlab高亮代码复制到Word,中文会乱码开始,我就很想研究下如何在Word中展示漂亮的代码。今年寒假利用Vim,有些突破,10月3日的时候又有了比较大的进展,自己设计了一款Vim的代码...
  • 本文可以帮助你Office 2007中为Word标题样式添加和设置自动编号功能。 word 2003观见微软官方链接: http://office.microsoft.com/zh-cn/word-help/HP005186047.aspx 正文: 近日因工作需要,需要编制一份...
  • vb6将图片和数据保存word中的方法

    千次阅读 2008-11-11 23:18:00
    vb6将图片和数据保存word中的方法:前提是你已经vb程序中将图形(picture1)画好了,而且数据已经计算出来了。工程/引用加入这个引用:Microsoft Word 11.0 Object Library新建一个text(名字为Text1,并...
  • win7系统下,Word2010出现了不能正常关闭。打开一个已有word文档,点击右上角关闭按钮后,先提示“word已停止工作,windows正在检查该问题的解决方案”,随后提示“Microsoft word正试图恢复您的信息,这可能需要...
  • 尝试下面步骤: 方法 一:文件〉选项〉高级〉,保存,关闭“允许后台保存”选项。 提示:禁止该项功能可能存在风险, 请及时保存...4.可用选项列表,单击选中“禁用硬件图形加速”复选框。 方法三: 可以...
  • 创建包括ActiveX程序时,主要的工作就是组件,一个可以自足的ActiveX网络(现在的网络主要包括 Windows和Mac)任意运行的程序。这个组件就是ActiveX近控件。ActiveX是Microsoft为抗衡Sun Microsystems的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 100,244
精华内容 40,097
关键字:

在word程序中设置自动保存时