VSTO学习之三 openxml

12  读写openxml

offic2007都是用openxml来构建,当我们在文档中插入一个图表,该图表的样式数据会已xml文件的形式保存在文件charts目录下。我们也可以自定义xml文件然后绑定到文档中。在服务器上程序只需求修改xml文件就可以改变文档中绑定的数据。

 

下面我们试验通过Package对象来取得docx文件中的xml文件。提示一下:对docx操作的代码不能直接写在该docx文档的工程中,否则系统会提示该文件已经被占用。

//构建Package对象,打开word文档

            Package package = Package.Open(@"D:\Backup\我的文档\VisualStudio2008\Projects\WordDocument2\WordDocument2\bin\Debug\WordDocument2.docx");

           //用uri对象设置包内文件路径

            Uri documetUri = newUri("/word/charts/chart1.xml",UriKind.Relative);

           //取得包内文件

            PackagePartdocumanetPart = package.GetPart(documetUri);

            //声明一个xml对象

            XmlDocument documentXml = newXmlDocument();

            //将包内文件装载如xml对象

           documentXml.Load(documanetPart.GetStream());

            //声明xml读取对象

            XmlNodeReader readerXml = newXmlNodeReader(documentXml);

            while (readerXml.Read())//遍历xml文件

            {

                if (readerXml.NodeType == XmlNodeType.Element)//如果节点是一个元素。节点有元素和属性两个类型

                {

                    //判断当前节点名是否是我们指定的。如果是就将它输出

                   //if (xmlread.LocalName.Equals("id")|| xmlread.LocalName.Equals("name") ||xmlread.LocalName.Equals("age"))

                   //{

                        //读处节点名和节点数据

                      // Response.Write(xmlread.LocalName + ":" + xmlread.ReadString());

 

                   //}

                   //string str = readerXml.LocalName+"    :    " +readerXml.ReadString();

                   //Console.WriteLine(str);

                }

                string str = readerXml.LocalName + "    :    " + readerXml.ReadString();

                Console.WriteLine(str);

            }

            //关闭xml读取对象

            readerXml.Close();

 

另外一个openxml读写的例子

Openxml可以自定义用户数据包,一般在customXml\ item1.xml中。我们可以使用Content Control Toolkit工具生成用户数据xml,然后把用户xml绑定到word控件中。我们只需要修改用户xml就可以实现word数据的动态绑定了。

 

//构建Package对象,打开word文档

            Package package = Package.Open(@"testXml.docx");

            //用uri对象设置包内文件路径

            Uri documetUri = newUri("/customXml/item1.xml",UriKind.Relative);

            //取得包内文件

            PackagePart documanetPart =package.GetPart(documetUri);          

            //声明一个xml对象

            XmlDocument documentXml = newXmlDocument();

            //将包内文件装载如xml对象

           documentXml.Load(documanetPart.GetStream());

            //声明xml读取对象

            XmlNodeReader readerXml = newXmlNodeReader(documentXml);

            //指明要修改的xml节点

            XmlNodeList xmlNodeList = documentXml.SelectNodes("/dataroot[1]/表1[1]/name[1]");

            //修改节点内容

           xmlNodeList[0].InnerText = "世界,你好,我会用xml了!!!";

            //写回package

           documentXml.Save(documanetPart.GetStream(FileMode.Create,

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
通过研究VSTO(Visual Studio Tools for Office)两个月时间,我了解到一些关于VSTO和Excel的知识。VSTO是一种用于开发基于Office的定制应用程序的工具。它可以帮助开发人员使用Visual Studio和.NET框架创建功能强大的Excel插件。 在学习VSTO Excel时,可以参考一些资源,例如罗刚君老师的最新力作《Excel VBA与VSTO基础实战指南》,这本书提供了丰富的案例文件源码和详细的代码注释,非常值得学习和参考。 在开发环境方面,通常使用Visual Studio和VB .Net来进行VSTO开发,并且针对Excel 2007进行文档级别的定制程序开发。 通过学习VSTO Excel,你可以掌握使用VSTO工具和技术来开发自定义的Excel应用程序,包括插入图片等各种操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [VSTO excel中插入resource图片](https://blog.csdn.net/iteye_20397/article/details/82434038)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Excel VBA与VSTO基础实战指南的案例文件源码part4](https://download.csdn.net/download/qq_35609339/10181286)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Excel开发学习笔记:发布VSTO下的Excel开发项目](https://blog.csdn.net/weixin_42099987/article/details/116794858)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值