javascript 操作Word和Excel的实现代码


Posted in Javascript onOctober 26, 2009

1.保存html页面到word

<HTML> 
<HEAD> 
<title> 
</title> 
</HEAD> 
<body> 
<form id="form"> 
<table id = "PrintA" width="100%" border="1" cellspacing="0" cellpadding="0" > 
<TR style="text-align : center;"> 
<TD>单元格1</TD> 
<TD>单元格2</TD> 
<TD>单元格3</TD> 
<TD>单元格4</TD> 
</TR> 
<TR> 
<TD colSpan=4 style="text-align : center;"><font color="red" face="Verdana">单元格合并</FONT></TD> 
</TR> 
</TABLE> 
<BR> 
<table id = "Test" width="100%"> 
<tr> 
<td><font color="red">test</FONT></td> 
</tr> 
</table> 
</form> 
<input type="button" onclick="javascript:MakeWord();" value="导出页面到Word"> 
<SCRIPT LANGUAGE="javascript"> 
function MakeWord() 
{ 
var word = new ActiveXObject("Word.Application"); 
// var doc = word .documents.open("c:\test.doc"); //此处为打开已有的模版 
var doc = word .Documents.Add("",0,1);//不打开模版直接加入内容 
var Range=doc.Range(); var sel = document.body.createTextRange(); 
sel.moveToElementText(form);//此处form是页面form的id 
sel.select(); 
sel.execCommand("Copy"); 
Range.Paste(); 
word .Application.Visible = true; 
alert("s"); 
word.Application.Selection.InlineShapes.AddPicture("c:\\m20.gif"); 
alert("n"); 
doc .saveAs("c:\\ba.doc"); //存放到指定的位置注意路径一定要是“\\”不然会报错 
} 
</SCRIPT> 
</body> 
</html>

2.用JS生成WORD

<script> 
function wordcontorl(){ 
alert("1111") 
var WordApp=new ActiveXObject("Word.Application"); 
var wdCharacter=1 
var wdOrientLandscape = 1 
WordApp.Application.Visible=true; 
var myDoc=WordApp.Documents.Add(); 
WordApp.ActiveDocument.PageSetup.Orientation = wdOrientLandscape 
WordApp. Selection.ParagraphFormat.Alignment=1 //1居中对齐,0为居右 
WordApp. Selection.Font.Bold=true 
WordApp. Selection.Font.Size=20 
WordApp. Selection.TypeText("我的标题"); 
WordApp. Selection.MoveRight(wdCharacter);

//光标右移字符 
WordApp.Selection.TypeParagraph()



 //插入段落 
WordApp. Selection.Font.Size=12 
WordApp. Selection.TypeText("副标题"); //分行插入日期 
WordApp.Selection.TypeParagraph()



 //插入段落 

var myTable=myDoc.Tables.Add (WordApp.Selection.Range, 8,7) //8行7列的表格 
//myTable.Style="网格型" 
var aa = "我的列标题" 
var TableRange; //以下为给表格中的单元格赋值 
for (i= 0;i<7;i++) 
{ 
with (myTable.Cell(1,i+1).Range) 
{ 
font.Size = 12; 
InsertAfter(aa); 
ColumnWidth =4 
} 
} 
for (i =0;i<7;i++) 
{ 
for (n =0;n<7 ;n++) 
{ 
with (myTable.Cell(i+2,n+1).Range) 
{font.Size = 12; 
InsertAfter("bbbb"); 
} 
} 
} 
row_count = 0; 
col_count = 0 
myDoc.Protect(1) 
} 
wordcontorl() 
</script>

***************************************************************************************************
3.遍历导出到word
***************************************************************************************************
1、遍历导出每个文本框内的内容。
<script language="javascript"> 
function OpenWord(){//导出word 
var txt="txt"; 
for(i=0;i<table1.rows.length;i++)//遍历导出图表和文字 
{ 
txt="txt"+jilu[i]; 
myRange =mydoc.Range(myRange.End-1,myRange.End);//设定起始点 
var sel=Layer1.document.body.createTextRange(); 
//sel.moveToElementText(table1); 
sel.moveToElementText(document.all[txt]); 
sel.select(); 
Layer1.document.execCommand('Copy'); 
sel.moveEnd('character'); 
myRange.Paste(); 
myRange =mydoc.Range(myRange.End-1,myRange.End); 
myRange.InsertAfter("\n"); 
ExcelSheet.ActiveWindow.View.TableGridlines = false;//隐藏虚框 
} 
} 
</script>

2、拷贝table1内的内容到word
<script language="javascript"> 
function OpenWord(){//导出word 
Layer1.style.border=0; 
ExcelSheet = new ActiveXObject('Word.Application'); 
ExcelSheet.Application.Visible = true; 
var mydoc=ExcelSheet.Documents.Add('',0,0); 
myRange =mydoc.Range(0,1); 
myRange =mydoc.Range(myRange.End-1,myRange.End);//设定起始点 
var sel=Layer1.document.body.createTextRange(); 
sel.moveToElementText(table1); 
sel.select(); 
Layer1.document.execCommand('Copy'); 
sel.moveEnd('character'); 
myRange.Paste(); myRange =mydoc.Range(myRange.End-1,myRange.End); 
myRange.InsertAfter("\n"); 
ExcelSheet.ActiveWindow.View.TableGridlines = false; 
} 
</script>

**************************************************************************************************
4.操作excel
**************************************************************************************************
<%@ page c %> 
<h1>content</h1> 
<html> 
<head> 
<script language="javascript" type="text/javascript"> 
function MakeExcel() { 
var i, j, n; 
try { 
var xls = new ActiveXObject("Excel.Application"); 
} 
catch(e) { 
alert( "要打印该表,您必须安装Excel电子表格软件,同时浏览器须使用“ActiveX 控件”,您的浏览器须允许执行控件。请点击【帮助】了解浏览器设置方法!"); 
return ""; 
} 
xls.visible =true; // 设置excel为可见 
var xlBook = xls.Workbooks.Add; 
var xlsheet = xlBook.Worksheets(1); 
<!--合并--> 
xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,7)).mergecells=true; 
xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,7)).value="发卡记录"; 
xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,3)).Interior.ColorIndex=5; // 设置底色为蓝色 
// xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,6)).Font.ColorIndex=4; // 设置字体色 
// xlsheet.Rows(1). Interior .ColorIndex = 5 ;//设置底色为蓝色 设置背景色 Rows(1).Font.ColorIndex=4 
<!--设置行高--> 
xlsheet.Rows(1).RowHeight = 25; 
<!--设置字体 ws.Range(ws.Cells(i0+1,j0), ws.Cells(i0+1,j1)).Font.Size = 13 --> 
xlsheet.Rows(1).Font.Size=14; 
<!--设置字体 设置选定区的字体 xlsheet.Range(xlsheet.Cells(i0,j0), ws.Cells(i0,j0)).Font.Name = "黑体" --> 
xlsheet.Rows(1).Font.Name="黑体"; 
<!--设置列宽 xlsheet.Columns(2)=14;--> 
xlsheet.Columns("A:D").ColumnWidth =18; 
<!--设置显示字符而不是数字--> 
xlsheet.Columns(2).NumberFormatLocal="@"; 
xlsheet.Columns(7).NumberFormatLocal="@"; 
//设置单元格内容自动换行 range.WrapText = true ; 
//设置单元格内容水平对齐方式 range.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;//设置单元格内容竖直堆砌方式 
//range.VerticalAlignment=Excel.XlVAlign.xlVAlignCenter 
//range.WrapText = true; xlsheet.Rows(3).WrapText=true 自动换行 
//设置标题栏 
xlsheet.Cells(2, 1).Value = "卡号"; 
xlsheet.Cells(2, 2).Value = "密码"; 
xlsheet.Cells(2, 3).Value = "计费方式"; 
xlsheet.Cells(2, 4).Value = "有效天数"; 
xlsheet.Cells(2, 5).Value = "金额"; 
xlsheet.Cells(2, 6).Value = "所属服务项目"; 
xlsheet.Cells(2, 7).Value = "发卡时间"; 
var oTable = document.all['fors:data']; 
var rowNum = oTable.rows.length; 
for(i = 2; i <= rowNum; i++) { 
for (j = 1; j <= 7; j++) { 
//html table类容写到excel 
xlsheet.Cells(i + 1, j).Value = oTable.rows(i - 1).cells(j - 1).innerHTML; 
} 
} 
<!-- xlsheet.Range(xls.Cells(i+4,2),xls.Cells(rowNum,4)).Merge; --> 
// xlsheet.Range(xlsheet.Cells(i, 4), xlsheet.Cells(i-1, 6)).BorderAround , 4 
// for(mn=1,mn<=6;mn++) . xlsheet.Range(xlsheet.Cells(1, mn), xlsheet.Cells(i1, j)).Columns.AutoFit; 
xlsheet.Columns.AutoFit; 
xlsheet.Range( xlsheet.Cells(1,1),xlsheet.Cells(rowNum+1,7)).HorizontalAlignment =-4108;//居中 
xlsheet.Range( xlsheet.Cells(1,1),xlsheet.Cells(1,7)).VerticalAlignment =-4108; 
xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Font.Size=10; 
xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(3).Weight = 2; //设置左边距 
xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(4).Weight = 2;//设置右边距 
xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(1).Weight = 2;//设置顶边距 
xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(2).Weight = 2;//设置底边距 
xls.UserControl = true; //很重要,不能省略,不然会出问题 意思是excel交由用户控制 
xls=null; 
xlBook=null; 
xlsheet=null; 
} 
</script> 
<link href="css/styles3.css" rel="stylesheet" type="text/css"/> 
<title>ziyuanweihu</title> 
</head> 
<body> 
<form id="fors" method="post" action="/WebModule/admins/card/showcard.faces" enctype="application/x-www-form-urlencoded"> 
<table id="fors:top" border="0" cellpadding="0" cellspacing="0" width="100%"> 
<tbody> 
<tr> 
<td class="left"><img src="images/jiao1.gif" alt="" /></td> 
<td class="topMiddle"></td> 
<td class="right"><img src="images/jiao2.gif" alt="" /></td> 
</tr> 
</tbody> 
</table> 
<table border="0" cellpadding="0" cellspacing="0" width="100%"> 
<tbody> 
<tr> 
<td class="middleLeft"></td> 
<td class="btstyle"> 
<table id="fors:sort" border="0" cellpadding="0" cellspacing="0" style="valign:center" width="100%"> 
<tbody> 
<tr> 
<td class="btstyle"> 
<input type="button" name="fors:_id7" value="生成excel文件" /> 
</td> 
</tr> 
</tbody> 
</table> 
<table id="fors:data" border="1" cellpadding="0" cellspacing="1" width="100%"> 
<thead> 
<tr> 
<th scope="col"><span id="fors:data:headerText1">卡号</span></th> 
<th scope="col"><span id="fors:data:headerText2">密码</span></th> 
<th scope="col"><span id="fors:data:headerText3">计费方式</span></th> 
<th scope="col"><span id="fors:data:headerText4">有效天数</span></th> 
<th scope="col">金额</th> 
<th scope="col"><span id="fors:data:headerText6">所属服务项目</span></th> 
<th scope="col"><span id="fors:data:headerText7">发卡时间</span></th> 
</tr> 
</thead> 
<tbody> 
<tr> 
<td>h000010010</td> 
<td>543860</td> 
<td>计点</td> 
<td></td> 
<td>2.0</td> 
<td>测试项目</td> 
<td>2006-06-23 10:14:40.843</td> 
</tr> 
<tr> 
<td>h000010011</td> 
<td>683352</td> 
<td>计点</td> 
<td></td> 
<td>2.0</td> 
<td>测试项目</td> 
<td>2006-06-23 10:14:40.843</td> 
</tr> 
<tr> 
<td>h000010012</td> 
<td>433215</td> 
<td>计点</td> 
<td></td> 
<td>2.0</td> 
<td>测试项目</td> 
<td>2006-06-23 10:14:40.843</td> 
</tr> 
<tr> 
<td>h000010013</td> 
<td>393899</td> 
<td>计点</td> 
<td></td> 
<td>2.0</td> 
<td>测试项目</td> 
<td>2006-06-23 10:14:40.843</td> 
</tr> 
<tr> 
<td>h000010014</td> 
<td>031736</td> 
<td>计点</td> 
<td></td> 
<td>2.0</td> 
<td>测试项目</td> 
<td>2006-06-23 10:14:40.843</td> 
</tr> 
<tr> 
<td>h000010015</td> 
<td>188600</td> 
<td>计点</td> 
<td></td> 
<td>2.0</td> 
<td>测试项目</td> 
<td>2006-06-23 10:14:40.843</td> 
</tr> 
<tr> 
<td>h000010016</td> 
<td>363407</td> 
<td>计点</td> 
<td></td> 
<td>2.0</td> 
<td>测试项目</td> 
<td>2006-06-23 10:14:40.843</td> 
</tr> 
<tr> 
<td>h000010017</td> 
<td>175315</td> 
<td>计点</td> 
<td></td> 
<td>2.0</td> 
<td>测试项目</td> 
<td>2006-06-23 10:14:40.843</td> 
</tr> 
<tr> 
<td>h000010018</td> 
<td>354437</td> 
<td>计点</td> 
<td></td> 
<td>2.0</td> 
<td>测试项目</td> 
<td>2006-06-23 10:14:40.843</td> 
</tr> 
<tr> 
<td>h000010019</td> 
<td>234750</td> 
<td>计点</td> 
<td></td> 
<td>2.0</td> 
<td>测试项目</td> 
<td>2006-06-23 10:14:40.843</td> 
</tr> 
</tbody> 
</table> 
</td> 
<td class="middleRight"></td> 
</tr> 
</tbody> 
</table> 
<table id="fors:bottom" border="0" cellpadding="0" cellspacing="0" width="100%"> 
<tbody> 
<tr> 
<td class="left"> 
<img src="images/jiao3.gif" alt=""/> 
</td> 
<td class="bottomMiddle"> </td> 
<td class="right"> 
<img src="images/jiao4.gif" alt=""/> 
</td> 
</tr> 
</tbody> 
</table> 
<input type="hidden" name="fors" value="fors" /> 
</form> 
</body> 
</html>

<%-- 
// ---------------------------------- 1 ---------------------------------- \\ 
<HTML> 
<HEAD> 
<TITLE>导出到excel</TITLE> 
<META NAME="Generator" C> 
<META NAME="Author" C> 
<META NAME="Keywords" C> 
<META NAME="Description" C> 
</HEAD> 
<script language="javascript"> 
function exportExcel(tableid) { 
if(typeof(EXPORT_OBJECT)!="object") { 
document.body.insertAdjacentHTML("afterBegin","<OBJECT style='display:none' classid='clsid:0002E510-0000-0000-C000-000000000046' id='EXPORT_OBJECT'></Object>"); 
} 
with(EXPORT_OBJECT) { 
DataType = "HTMLData"; 
HTMLData =tableid.outerHTML; 
try { 
ActiveSheet.Export("d:\\表格.xls", 0); 
alert('成功导出EXCEL表格!'); 
} 
catch (e) { 
alert('导出EXCEL表格失败,请确定已安装Excel2000(或更高版本),并且没打开同名xls文件'); 
} 
} 
} 
</script> 
<BODY> 
<table id="tableid" border="1"> 
<tr> 
<td>第一个单元格</td> 
<td>第二个单元格</td> 
<td>第三个单元格</td> 
</tr> 
<tr> 
<td>第四个单元格</td> 
<td>第五个单元格</td> 
<td>第六个单元格</td> 
</tr> 
</table> 
<input type="button" value="导出EXCEL表格" > 
</BODY> 
</HTML> 
// ---------------------------------- 2 ---------------------------------- \\ 
<!-- 导出到office2000版本的word或excel中 --> 
<script language="javascript"> 
function tableToExcel() { 
window.clipboardData.setData("Text",document.all('theObjTable').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; 
} 
function tableToWord() { 
var oWD = new ActiveXObject("Word.Application"); 
var oDC = oWD.Documents.Add("",0,1); 
var oRange =oDC.Range(0,1); 
var sel = document.body.createTextRange(); 
sel.moveToElementText(theObjTable); 
sel.select(); 
sel.execCommand("Copy"); 
oRange.Paste(); 
oWD.Application.Visible = true; 
} 
</script> 
<table id="theObjTable"> 
<tr> 
<td>在html页面中</td> 
<td>把网页中的表</td> 
<td>格内容导入到</td> 
<td>word中</td> 
<td>也可以导入到excel</td> 
</tr> 
</table> 
<input type="button" value="导入到excel" > 
<input type="button" value="导入到word" > 
// ---------------------------------- 3 ---------------------------------- \\ 
--%>

******************************************************************************************************
5.有关用js实现网页中的内容直接转化为excel的方法
******************************************************************************************************
<html xmlns:o="urn:schemas-microsoft-com:office:office" 
xmlns:x="urn:schemas-microsoft-com:office:excel" 
xmlns="http://www.w3.org/TR/REC-html40"> 
<head> 
<meta http-equiv=Content-Type c> 
<script> 
function out(){ 
try{ 
var elTable = document.getElementById("out"); 
var oRangeRef = document.body.createTextRange(); 
oRangeRef.moveToElementText( elTable ); 
oRangeRef.execCommand( "Copy" ); 
var oXL = new ActiveXObject("Excel.Application") 
var oWB = oXL.Workbooks.Add ; 
var oSheet = oWB.ActiveSheet ; 
oSheet.Paste(); 
oSheet.Cells.NumberFormatLocal = "@"; 
oSheet.Columns("D:D").Select 
oXL.Selection.ColumnWidth = 20 
//oSheet.Columns("A:A").Select 
//oSheet.Columns("A").Width = 1000; 
oXL.Visible = true; 
oSheet = null; 
oWB = null; 
appExcel = null; 
}catch(e){alert(e.description)} 
} 
</script> 
</head> 
<body> 
<table id ='out'> 
<tr> 
<td x:str bgcolor="#FF0000">00001</td> 
<td x:str>0002</td> 
</tr> 
<tr> 
<td height=18 align=right style='height:13.5pt' x:str>00001</td> 
<td align=right x:str>000002</td> 
</tr> 
<tr> 
<td x:str>0003</td> 
<td x:str>00003</td> 
</tr> 
</table> 
<INPUT type="button" value="Button" id=button1 name=button1 > 
</body> 
</html>
Javascript 相关文章推荐
优化JavaScript脚本的性能的几个注意事项
Dec 22 Javascript
设置下载不需要倒计时cookie(倒计时代码)
Nov 19 Javascript
JQUERY操作JSON实例代码
Feb 09 Javascript
js针对ip地址、子网掩码、网关的逻辑性判断
Jan 06 Javascript
jQuery 3.0 的变化及使用方法
Feb 01 Javascript
Bootstrap菜单按钮及导航实例解析
Sep 09 Javascript
js实现返回顶部效果
Mar 10 Javascript
JavaScript队列的应用实例详解【经典数据结构】
Apr 12 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
Sep 15 Javascript
layui点击数据表格添加或删除一行的例子
Sep 12 Javascript
vue设置动态请求地址的例子
Nov 01 Javascript
微信sdk实现禁止微信分享(使用原生php实现)
Nov 15 Javascript
JavaScript 对话框和状态栏使用说明
Oct 25 #Javascript
5款Javascript颜色选择器
Oct 25 #Javascript
11款基于Javascript的文件管理器
Oct 25 #Javascript
JavaScript 三种不同位置代码的写法
Oct 25 #Javascript
JavaScript 事件的一些重要说明
Oct 25 #Javascript
javascript写的一个链表实现代码
Oct 25 #Javascript
JavaScript的变量作用域深入理解
Oct 25 #Javascript
You might like
thinkphp中memcache的用法实例
2014/11/29 PHP
PHP开发框架laravel安装与配置教程
2015/03/13 PHP
零基础php编程好学吗
2019/10/11 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
[原创]站长必须要知道的javascript广告代码
2007/05/30 Javascript
JavaScript在多浏览器下for循环的使用方法
2012/11/07 Javascript
js判断设备是否为PC并调整图片大小
2014/02/12 Javascript
jQuery如何取id有.的值一般的方法是取不到的
2014/04/18 Javascript
Javascript快速排序算法详解
2014/12/03 Javascript
jQuery简单获取键盘事件的方法
2016/01/22 Javascript
javascript回到顶部特效
2016/07/30 Javascript
layui表格实现代码
2017/05/20 Javascript
Vue学习之路之登录注册实例代码
2017/07/06 Javascript
使用Webpack提高Vue.js应用的方式汇总(四种)
2017/07/10 Javascript
基于AngularJS实现表单验证功能
2017/07/28 Javascript
js判断传入时间和当前时间大小实例(超简单)
2018/01/11 Javascript
Vue使用NProgress的操作过程解析
2019/10/10 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
JS实现滑动导航效果
2020/01/14 Javascript
Python压缩解压缩zip文件及破解zip文件密码的方法
2015/11/04 Python
举例讲解Python中的Null模式与桥接模式编程
2016/02/02 Python
python dlib人脸识别代码实例
2019/04/04 Python
python实现银联支付和支付宝支付接入
2019/05/07 Python
python装饰器三种装饰模式的简单分析
2020/09/04 Python
CSS3之背景尺寸Background-size使用介绍
2013/10/14 HTML / CSS
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
英国的潮牌鞋履服饰商店:size?
2019/03/26 全球购物
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
为您搜罗全球潮流時尚品牌:HBX
2019/12/04 全球购物
古驰英国官网:GUCCI英国
2020/03/07 全球购物
创业计划书的内容步骤和要领
2014/01/04 职场文书
最美乡村医生事迹材料
2014/06/02 职场文书
12.4全国法制宣传日活动总结
2014/11/01 职场文书
2015年全国“爱牙日”宣传活动总结
2015/03/23 职场文书
2015年办公室主任工作总结
2015/04/09 职场文书
Java使用Unsafe类的示例详解
2021/09/25 Java/Android