js 把数据生成word
- <script type="text/javascript">
- var boxId=1;
- var pageHtmlList = new Array(15);
- function htmlToWord(haveImg){
- var oWD = new ActiveXObject("Word.Application");//建立word对象
- var oDC = oWD.Documents.Add();//新建文档(对象)
- oWD.Application.Visible = true;//word可视
- var selection = oWD.Selection;//建立插入点对象
- createHead(selection);//插入文件头内容
- writeTOWord(1,selection,oDC,haveImg);//写入WORD文档内容
- }
- function createHead(selection){
- selection.Font.color = 16737846;//设置字体格式
- selection.Font.Bold = 9999998;
- selection.TypeText("金华移动市场运营分析周报");//标题
- setFormat(selection,"金华移动市场运营分析周报",22,1);//设置字体大小和是否居中
- selection.Font.Bold = 9999998;
- selection.TypeParagraph();//换行
- selection.TypeParagraph();
- selection.TypeText("市场经营部 <%=thisMt.getThisMonthDate()%>");
- setFormat(selection,"市场经营部 <%=thisMt.getThisMonthDate()%>",14,1);
- selection.TypeParagraph();
- selection.TypeParagraph();
- selection.TypeParagraph();
- selection.Font.color= -16777216;
- }
- function writeTOWord(num,selection,oDC,haveImg){
- var temp =$("Navigation"+num);
- var tabledom =getChildren(temp,"TABLE");
- var imgdom = getChildren(temp,"IMG");
- fillcaption(num,selection);
- writeIn(tabledom,imgdom,selection,oDC,haveImg);
- selection.InsertBreak(7);
- if(num<boxId){
- showMessage(boxId,num);
- num++;
- writeTOWord(num,selection,oDC,haveImg);
- }
- else
- alert("周报生成完成");
- }
- function writeIn(tabledom,imgdom,selection,oDC,haveImg){
- if(!(tabledom instanceof Array)){
- createTable(oDC,selection,tabledom);
- fillTable(tabledom,selection.Tables(selection.Tables.Count),selection);
- if(typeof(imgdom)=="object" && haveImg ==true)
- fillImg(imgdom.src,selection);
- }
- if(tabledom instanceof Array){
- var temp =tabledom.shift();
- createTable(oDC,selection,temp);
- fillTable(temp,selection.Tables(selection.Tables.Count),selection);
- if(typeof(imgdom)=="object" && haveImg ==true)
- fillImg(imgdom.src,selection);
- temp =tabledom.shift();
- createTable(oDC,selection,temp);
- fillTable(temp,selection.Tables(selection.Tables.Count),selection);
- }
- }
- function createTable(wordDocument,selection,tabledom){
- var rownum=tabledom.rows.length;//获取行数
- var cellnum=0;
- var tempdom=null;
- for(i=0;i<tabledom.rows.length;i++){//根据行数循环
- if(tabledom.rows(i).cells.length>cellnum){
- cellnum=tabledom.rows(i).cells.length;//获取最大的列数
- }
- }
- wordDocument.Tables.Add(selection.Range,rownum,cellnum);//新建表格,行数为talbe的行数,列数取最大的列数
- tempdom=selection.Tables(selection.Tables.Count);
- if(cellnum>9){
- tempdom.PreferredWidthType =2;
- tempdom.PreferredWidth =133;
- }
- }
- function getChildren(divDom,childType){//根据childType从div里面取出子元素
- try{
- var doms = divDom.children;
- }catch(e){
- alert(childType);
- }
- var returnDom =[];
- for(i=0;i<doms.length;i++){
- if(doms[i].tagName==childType){
- returnDom.push(doms[i]);
- }
- }
- if(returnDom.length>1){
- return returnDom;
- }else
- return returnDom.shift();
- }
- function fillcaption(num,selection){//插入标题
- if(num==1){
- selection.TypeText("一、市场规模分析");
- setFormat(selection,"一、市场规模分析",12,0);
- selection.TypeParagraph();
- selection.TypeText("(一)运营收入情况分析");
- setFormat(selection,"(一)运营收入情况分析",12,0);
- selection.TypeParagraph();
- }
- if(num==3){
- selection.TypeText("(二)通话用户增长");
- setFormat(selection,"(二)通话用户增长",12,0);
- selection.TypeParagraph();
- }
- if(num==5){
- selection.TypeText("(三)新增放号");
- setFormat(selection,"(三)新增放号",12,0);
- selection.TypeParagraph();
- }
- if(num==7){
- selection.TypeText("二、市场份额分析");
- setFormat(selection,"二、市场份额分析",12,0);
- selection.TypeParagraph();
- selection.TypeText("(一)新增市场");
- setFormat(selection,"(一)新增市场",12,0);
- selection.TypeParagraph();
- }
- if(num==9){
- selection.TypeText("(二)存量(通话)市场");
- setFormat(selection,"(二)存量(通话)市场",12,0);
- selection.TypeParagraph();
- }
- if(num==13){
- selection.TypeText("三、市场质量分析");
- setFormat(selection,"三、市场质量分析",12,0);
- selection.TypeParagraph();
- selection.TypeText("(一)<%=thisMt.getThisMonth()%>月份离网数据");
- setFormat(selection,"(一)<%=thisMt.getThisMonth()%>月份离网数据",12,0);
- selection.TypeParagraph();
- }
- var caption =$("caption"+num);
- selection.TypeText(caption.innerHTML);//标题
- setFormat(selection,caption.innerHTML,12,0);
- selection.TypeParagraph();
- }
- function fillImg(url,selection){//根据图片地址URL写入WORD
- selection.TypeParagraph();
- selection.InlineShapes.AddPicture(url,false,true);
- selection.ParagraphFormat.Alignment =1;
- selection.TypeParagraph();
- }
- function fillTable(htmltable,wordTable,selection){//根据HTMLTABLE的内容写入WORD
- var lastrows=0;
- var rownum=htmltable.rows.length;
- if(wordTable.Style !="网格型")//把表格设置成网格型
- wordTable.Style = "网格型";
- for(i=0;i<rownum;i++){//循环设置表格,先根据行循环
- var rows=0;
- for(j=0;j<htmltable.rows(i).cells.length;j++){//根据每行的列循环
- rows+=cellMerge(htmltable,selection,htmltable.rows(i).cells(j));//合并单元格,记录改变的表格位置
- selection.Font.Name = "宋体";//设置字体为宋体
- selection.ParagraphFormat.Alignment =1;
- selection.Font.Size = 9;
- selection.TypeText(htmltable.rows(i).cells(j).innerText);//使用插入点插入内容
- selection.MoveRight(1,1);//下一格
- }
- lastrows=gotoNextRow(rows,lastrows,selection,htmltable.rows(i).cells);
- }
- wordTable.Style.ParagraphFormat.Alignment= 1;
- selection.TypeParagraph();
- }
- function gotoNextRow(rows,lastrows,selection,cells){
- if(rows==0 && lastrows==0){//本行以及上一行都没有跨行的单元格,则移动到本行首,同时下移到第二行
- selection.MoveLeft(12,cells.length);
- selection.MoveDown(5,1);//移动到下一行,wbline=5就是下一行
- }
- if(lastrows >0){//如果上一行有跨行的单元格,则移动到本行首,暂时只能解决第一行为跨行格的问题
- selection.MoveLeft(12,cells.length+lastrows);
- selection.MoveDown(5,1);
- lastrows=0;//移动结束清零
- }
- if(rows>0){//如果本行内有跨行,如此处理
- selection.MoveRight(12,rows+1);
- lastrows=rows;
- }
- return lastrows;
- }
- function cellMerge(htmltable,selection,cell){
- var rows=0;
- if(cell.rowSpan >1){//如果是多行表格,合并单元格,并且记录下行数
- selection.MoveDown(5,cell.rowSpan-1,1);
- selection.Cells.Merge();
- rows=cell.rowSpan-1;
- }
- if(cell.colSpan >1){//如果是多列表格,合并单元格
- selection.MoveRight(1,cell.colSpan,1);
- selection.Cells.Merge();
- }
- return rows;
- }
- function setFormat(selection,text,fontSize,align){
- selection.MoveLeft(1,text.length,1);//根据内容的长度选取字体,moveXXX方法的第三个参数为1做为选取
- selection.Font.Name = "宋体";//设置字体为宋体
- selection.Font.Size = fontSize;//设置字符大小为9PX,其实就是小五
- selection.MoveRight(1,1);//右移一个字符,其实就是取消选定
- selection.ParagraphFormat.Alignment= align;//居中对齐
- }
- function $(name){return document.getElementById(name);}
- function createXmlhttp(){
- var http_request = false;
- //开始初始化XMLHttpRequest对象
- if(window.XMLHttpRequest) { //Mozilla 浏览器
- http_request = new XMLHttpRequest();
- }
- else if (window.ActiveXObject) { // IE浏览器
- try {
- http_request = new ActiveXObject("Msxml2.XMLHTTP");
- } catch (e) {
- try {
- http_request = new ActiveXObject("Microsoft.XMLHTTP");
- } catch (e) {}
- }
- }
- if (!http_request) { // 异常,创建对象实例失败
- window.alert("不能创建XMLHttpRequest对象实例.");
- return false;
- }
- http_request.onreadystatechange = processRequest ;
- return http_request;
- }
- function sendRequest(url,id) {
- xmlrequest = createXmlhttp();
- boxId=id;
- xmlrequest.open("GET", url, true);
- xmlrequest.send(null);
- }
- function processRequest() {
- if (xmlrequest.readyState == 4) { // 判断对象状态
- if (xmlrequest.status == 200) {
- processDiv(xmlrequest.responseTEXT);
- }
- }
- }
- function showMessage(num1,num2){//显示已经显示在页面上的表格,和已经导出
- $("messageBox").innerText="已经生成"+num1+"份表报,生成完毕可以执行导出。";
- if(num1>=13){
- $("messageBox").innerText="成功生成全部表报,成功导出"+num2+"份表报。";
- $("wordButton").disabled=false;
- $("excelButton").disabled=false;
- $("wordButtonNoImg").disabled=false;
- }
- if(num2>=13){
- $("messageBox").innerText="成功生成全部表报,成功导出全部表报。";
- }
- }
- function processDiv(responseText){
- $("Navigation"+boxId).innerHTML=responseText;
- if(boxId<14){//当前的取出后,继续操作取下一个报表的table和图表
- showMessage(boxId,0);
- boxId++;
- sendRequest(pageUrlList[boxId],boxId);
- }
- }
- function getDeptChind(url){
- thisId=url;
- sendRequest(url);
- }
- var pageUrlList = new Array();
- pageUrlList[1]="provinceDayRevenue.jsp?date1=<%=thisMt.getThisMonthDate()%>";
- pageUrlList[2]="cityDayRevenue.jsp?date1=<%=thisMt.getThisMonthDate()%>";
- pageUrlList[3]="provinceNewUser.jsp?date1=<%=thisMt.getThisMonthDate()%>";
- pageUrlList[4]="cityNewUser.jsp?date1=<%=thisMt.getThisMonthDate()%>";
- pageUrlList[5]="provinceNewBill.jsp?date1=<%=thisMt.getThisMonthDate()%>";
- pageUrlList[6]="cityNewBill.jsp?date1=<%=thisMt.getThisMonthDate()%>";
- pageUrlList[7]="provinceQuotient.jsp?date1=<%=thisMt.getThisMonthDate()%>";
- pageUrlList[8]="cityQuotient.jsp?date1=<%=thisMt.getThisMonthDate()%>";
- pageUrlList[9]="provinceCallQuotient.jsp?date1=<%=thisMt.getThisMonthDate()%>";
- pageUrlList[10]="provinceOnlyIncrease.jsp?date1=<%=thisMt.getThisMonthDate()%>";
- pageUrlList[11]="cityCallQuotient.jsp?date1=<%=thisMt.getThisMonthDate()%>";
- pageUrlList[12]="cityOnlyIncrease.jsp?date1=<%=thisMt.getThisMonthDate()%>";
- pageUrlList[13]="provinceUserAway.jsp?date1=<%=thisMt.getThisMonthDate()%>";
- pageUrlList[14]="cityUserAway.jsp?date1=<%=thisMt.getThisMonthDate()%>";
- sendRequest(pageUrlList[1],1);
- </script>
- <script type="text/javascript">
- function tableToExcel() {
- window.clipboardData.setData("Text",document.all('result').outerHTML);
- try
- {
- var ExApp = new ActiveXObject("Excel.Application")
- var ExWBk = ExApp.workbooks.add()
- var ExWSh = ExWBk.worksheets(1)
- ExApp.DisplayAlerts = false
- ExApp.visible = true
- }
- catch(e)
- {
- alert("您的电脑没有安装Microsoft Excel软件!")
- return false
- }
- ExWBk.worksheets(1).Paste;
- }
- </script>
js 把数据生成word相关推荐
- java如何根据模板填充数据生成word文档
java根据模板填充数据生成word文档 这篇文章干什么? 思路总览 1.准备word模板 2.转换文件格式 3.编写代码 补充--下载流 这篇文章干什么? 使用代码将word模板内容进行替换,并 ...
- 微信小程序云开发将数据库数据生成word文件
演示如何通过云函数把数据存入word模板中,源代码见cloudfunctions/genarateDocument/index.js,整个过程分为以下几个过程:(1) 创建云函数,并安装doctemp ...
- 我鼓捣的数据库数据生成word文档的方法!
<script language="javascript" src="/js/content_top.js" type="text/javasc ...
- 数据库数据生成word文档的方法
从库里取纪录生成word文档. 主要有这么几种方法: 1.改头,就是象excel似的 Response.Buffer = TRUE Response.ContentType = "appli ...
- java 将数据生成word文档,并实现打勾选择框
1.建立word文档模板 2.word模板建立好之后放到指定路径下,这里放到D盘根目录测试 3.{{}}这两个中括号里面的标签就是java中需要注入的变量 4.java代码 public static ...
- python批量生成word报告_python自动生成word报告 | 如何将现有的数据利用python 填入word的表格中?...
关于python连接SQL server数据库的问题? 你把完整的连接代码贴一下 如何将现有的数据利用python 填入word的表格中? VB,VBA我会,py不会哦 DB2教程推荐,新手想学习这个 ...
- 使用freemarker生成word文档(包含遍历多条数据、图片)
在做项目的过程中,有时候需要把数据生成word文档,常用的有POI.ITEXT等,在这篇文章中我们使用freemarker模板来生成我们想要的word文档. 首先我们需要使用office word来编 ...
- 使用docx.js生成word
百家饭OpenAPI v0.7.0准备引入通过Swagger文件自动生成word的功能,因此研究和实现了基于Docx.js(https://docx.js.org/)生成文档的功能,也和大家分享一下使 ...
- 若依 springboot 使用freemarker生成word文件,并导出下载
目录 freemarker生成word文件并导出 一.环境准备 二.编写代码 1.实体类 2.mapper.xml文件 3.mapper.java文件 4.Service.java 5.Service ...
最新文章
- Udacity机器人软件工程师课程笔记(五)-样本搜索和找回-基于漫游者号模拟器-自主驾驶
- 在Websphere AppServer 5.1中配置数据源
- 基于命令序列的异常行为分析 业界研究现状分析
- 神经网络的分类行为怎么就不能是一种力的行为?
- java el表达式 if else_jsp EL表达式和JSTL标签if-else if-else用法
- 解决方案/DIV+CSS 在 IE7/IE6/Firefox间的兼容性问题
- C语言有好多7,[c语言]有1到100个数,现在从中提取7、和个位或十位上有7的数、以及7的倍数,然后输出。...
- ios开发之多线程---GCD
- 局域网ip扫描工具_IP Scanner Pro——ip局域网扫描工具
- 思维导图软件哪个好?不要错过这份思维导图软件合集
- UVM设置超时退出timeout
- python句柄无效_作为Windows服务运行的Python:OSError:[WinError 6]句柄无效
- 如何将计算机基础拷到u盘上,怎么把电脑上的CAD拷贝到u盘里
- [万字长文] 图神经网络的解释性综述
- 10月11号58同城面试的编程题
- Docker Daemon
- 十分钟玩转3D绘图:WxGL完全手册
- 浅谈工资合理避税,五大妙招轻松搞定!
- 中级软件设计师2011上半年上午试题
- STM32CUBEMX—查表法实现SPWM
热门文章
- 英雄杀朱雀之章在线活动
- {0}:{1:.4f}“.format(是什么意思 Python字符串格式化 (%占位操作符)
- Ubuntu 搜狗输入法安装指南
- php中.=是什么意思,javascript中$符号是什么意思?
- 国家一级学会创办的期刊
- Kubernetes 进阶训练营 Pod基础
- 聊聊机器如何“写“好广告文案?
- 咸鱼硬件—ZTMS开发板固件安装
- matlab ncut谱聚类,NCUT 归一化分割、谱聚类之代码调试问题
- 域格 ASR CAT1 系列 模块驱动安装及升级