Cell插件利用xml上传表格数据于服务器的B/S操作

转帖|其它|编辑:郝浩|2008-08-07 13:33:30.000|阅读 1333 次

概述:Cell插件利用xml上传表格数据于服务器的B/S操作

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

引言

随着XML技术发展,XML技术的广泛运用,用友华表cell插件在XML上的运用也取得很大发展,用友华表cell插件可以很方便的将客户端cell报表数据以XML形式发送给服务器,服务器再接受xml数据,通过解析xml数据流将cell报表数据入库或做相应处理。下例方案演示客户端的组织发送,以及服务器的接收解析入库。

正文:(本文以ASP ,客户端JavaScript,服务器端VbScript,Access数据库为例)

用友华表Cell插件推荐的xml格式是(实际运用根据业务逻辑):

<Workbook> 
       <DocumentProperties>
           <Created>2004-06-11T00:55:04Z</Created>
           <Version>03.1015</Version>
       </DocumentProperties>
       <Worksheet Name="第1页">
         <Table>
           <Row Index="3">
               <Cell Index="2">
                   <Data Type="Number">1234</Data>
               </Cell>
               <Cell Index="3">
                   <Data Type="Number">4567</Data>
               </Cell>
           </Row>
           <Row Index="4">
                <Cell Index="2">
                     <Data Type="String">asd</Data>
                </Cell> 
                < Cell Index="3">
                     <Data Type="String">ASDF</Data>
                </Cell>
           </Row>
         </Table>
       </Worksheet>
       <Worksheet Name="第2页">
         <Table>
           <Row Index="1">
              < Cell Index="1">
                  <Data Type="Number">1234</Data>
              </Cell>
              <Cell Index="2">
                  <Data Type="Number">4567</Data>
              </Cell>
           </Row>
         </Table>
       </Worksheet>
</Workbook>

客户端的操作

1.SaveToXML()

利用cell插件的SaveToXML()函数,返回报表数据的xml字符集,通过该函数将报表数据写入xml结构
xmldoc=cellweb.SaveToXml(xml_dom)

2.MSXML2.DOMDocument

创建MSXML2.DOMDocument的ActiveX对象Objxml,利用该对象的loadxml方法将xml文档导入到对象(上面的xmldoc)
objxml=new ActiveXObject("MSXML2.DOMDocument");
objxml.loadXML(xmldoc);

3.Microsoft.XMLHTTP

通过创建Microsoft.XMLHTTP的xmlhttp对象objS来实现xml数据流的发送
objS=new ActiveXObject("Microsoft.XMLHTTP");
发送xml数据流前先用open 方法打开,形式如下:
objS.open("post","http://127.0.0.1/upload_xml.asp",false);
objS.send(objxml);              //向服务器发送xml数据流。

服务器端的操作

1.创建MSXML2.DOMDocument对象Objxml接收xml数据流

set Objxml=Server.CreateObject("MSXML2.DOMDocument") 
利用对象load()方法接收发来的数据流,将数据流导入到Objxml对象里
Objxml.load(Request)
利用save方法把xml数据流保存一份xml文件以便验证
Objxml.save(Server.MapPath("temp.xml"))

2.创建ADO的连接对象connection和recordset记录集对象通过对xml的解析,利用记录集Addnew方法将数据写入Access数据库

set rootlist = Objxml.documentElement.getElementsByTagName("Table") '得到Objxml对象所有"Table"Node,注意xml是区分大小的
set conn = Server.CreateObject("ADODB.Connection")  '注意xml是区分大小的
connstr="××××××"    
conn.Open connstr               '建立数据库的连接
set Objrs = Server.CreateObject("ADODB.Recordset") 
Objrs.Open "tcell",conn,1,3     '打开tcell表,将数据写入数据库
for i=0 to (rootlist.length-1)  '遍历表节点 
   for j=0 to (rootlist.Item(i).childNodes.length-1)  '遍历行节点 
      for k=0 to (rootlist.Item(i).childNodes.Item(j).childNodes.length-1)   '遍历列节点 
          Objrs.AddNew 
          Objrs(1)="第"+CStr(i+1)+"页"+CStr(j+1)+"行"+CStr(k+1)+"列"   '定位cell上的单元格
          Objrs(2)=rootlist(i).childNodes(j).childNodes(k).Text        '写入单元格数据
          Objrs(3)=rootlist(i).childNodes(j).childNodes(k).childNodes(0).attributes.getNamedItem("Type").value      '写入单元格数据类型
          Objrs.Update 
      next 
   next 
next 
set Objrs=nothing 
set Conn=nothing
释放对象.

总结

本文简单介绍了用友华表cell插件利用xml往服务器发送数据的过程,希望对你的工作有所帮助。

要求

  • CellWeb 插件:5.1.4.510及以上的版本。
  • ADO:2.5及以上的版本。

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:用友华表

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP