首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 办公应用 > OFFICE教程 >

向Word添加指定表格的有关问题

2012-12-21 
向Word添加指定表格的问题现有一项目,需要向Word中添加表格、文本等内容项目架构为B/S,在线编辑Word采用重

向Word添加指定表格的问题
现有一项目,需要向Word中添加表格、文本等内容
项目架构为B/S,在线编辑Word采用重庆软航的Office控件

向文件添加指定文本已实现


function addInput()
{
var inputText = document.getElementById("inputText").value;OFFICE_CONTROL_OBJ.ActiveDocument.Application.Selection.TypeText(inputText);
}


页面中有一个在Div中的表格table也需要添加到Word中
但不知这个方法该怎么写


function addTable()
{
var tableHtml= document.getElementById("div_test").innerHTML;
var tableValue = document.getElementById("div_test").innerText;
alert(tableHtml);
alert(tableValue);
OFFICE_CONTROL_OBJ.ActiveDocument.Application.Selection.TypeText(tableHtml);
OFFICE_CONTROL_OBJ.ActiveDocument.Application.Selection.Tables.Add(tableHtml);
}


这里执行到Selection.Tables.Add时会报“Type mismatch”
是不是意味着方法调用对了,但是传值需要进行格式化?
还是可以调用别的方法?


楼下放我的整个页面代码

[最优解释]
这个问题,我感觉你放到.Net区更好,office的一般用VBA的多,所以你发这儿很难得到回答
[其他解释]
弄到剪切板再粘贴,确实是个不错的方法
[其他解释]
UltraEdit写的东西,出来格式都乱了…………


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv=X-UA-Compatible content=IE=EmulateIE7>
<title>Office测试</title>
<script language="JavaScript" src="OfficeContorlFunctions.js"></script>
<script language="JavaScript">
function addChars1()
{
OFFICE_CONTROL_OBJ.ActiveDocument.Application.Selection.TypeText('acndefmdfasd');
}
function addChars2()
{
OFFICE_CONTROL_OBJ.ActiveDocument.Application.Selection.TypeText('猜测大是大非');
}
function addTable()
{
var tableHtml= document.getElementById("div_test").innerHTML;
var tableValue = document.getElementById("div_test").innerText;
alert(tableHtml);
alert(tableValue);
OFFICE_CONTROL_OBJ.ActiveDocument.Application.Selection.TypeText(tableHtml);
OFFICE_CONTROL_OBJ.ActiveDocument.Application.Selection.Tables.Add(tableHtml);
}

function addInput()
{
var inputText = document.getElementById("inputText").value;
OFFICE_CONTROL_OBJ.ActiveDocument.Application.Selection.TypeText(inputText);
}

</script>
</head>
<body onload='creatNewFile()'>
<script language="JavaScript" src="getOfficeControl.js"></script>

<input type="button" value="添加几个字母" onclick="addChars1();" ></input>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="button" value="添加几个汉字" onclick="addChars2();" ></input>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br/>
<textarea id="inputText" cols="45" rows="4"></textarea>
<input type="button" value="添加输入值" onclick="addInput();" ></input>
<br/>
<input type="button" value="添加表格" onclick="addTable();" ></input><br/>
<div id="div_test">
<TABLE style="BORDER-COLLAPSE: collapse">
<TBODY>
<TR>
<TH style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid">物料名称&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </TH>


<TH style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 规格型号&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </TH>
<TH style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 材质&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; </TH>
<TH style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid">单位&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </TH>
<TH style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid">&nbsp; 合同单价&nbsp;&nbsp;&nbsp;&nbsp; </TH>
<TH style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid">&nbsp;&nbsp; 合同数量&nbsp;&nbsp;&nbsp; </TH>
<TH style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid">&nbsp;&nbsp; 合同金额&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </TH>
</TR>
<TR>
<TD style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid">钢板</TD>
<TD style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid">δ=10 图号6568.702-3</TD>
<TD style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid">1Cr20Ni14Si2</TD>
<TD style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid">公斤</TD>
<TD style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid">
<DIV style="TEXT-ALIGN: right">20.00 </DIV>
</TD>
<TD style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid">
<DIV style="TEXT-ALIGN: right">122.64 </DIV>


</TD>
<TD style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid">
<DIV style="TEXT-ALIGN: right">2452.80 </DIV>
</TD>
</TR>
<TR>
<TD style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid">钢板</TD>
<TD style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid">δ=10 图号6568.702-5</TD>
<TD style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid">1Cr20Ni14Si2</TD>
<TD style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid">公斤</TD>
<TD style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid">
<DIV style="TEXT-ALIGN: right">30.00 </DIV>
</TD>
<TD style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid">
<DIV style="TEXT-ALIGN: right">231.84 </DIV>
</TD>
<TD style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid">
<DIV style="TEXT-ALIGN: right">6955.20 </DIV>
</TD>
</TR>
</TBODY>
</TABLE>
</div>
</body>
</html>


[其他解释]
引用:
这个问题,我感觉你放到.Net区更好,office的一般用VBA的多,所以你发这儿很难得到回答


昨晚已解决
尝试把所需内容复制到剪切板,然后再调用粘贴

[其他解释]
方法已修改,找到一个思路:
先把内容复制到剪切板,然后粘贴

function addTable()
{
var sel = document.body.createTextRange();
sel.moveToElementText(div_test);
sel.select();
sel.execCommand("Copy");
OFFICE_CONTROL_OBJ.ActiveDocument.Application.Selection.Paste();
}



[其他解释]

<script language="javascript">

function tableToWord() { 

try

{
  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;

}

catch(e)
{
alert("您的电脑没有安装Microsoft Word软件!")
return false


 }
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;
 }
</script>

<table id=theObjTable>
  <tr>
   <td>a</td>
   <td>b</td>
</tr>
</table>

<input type="button" value="导入到excel" onclick="tableToExcel()">

<input type="button" value="导入到word" onclick="tableToWord()">





参考:
http://blog.csdn.net/luoyue2001/article/details/665773

热点排行