C# 如何读取InfoPath 并导出成Excel

迈克齐 2014-10-28 01:13:50
在SharePoint中有一个已经发布的InfoPath表单,那么C#如何通过读取InfoPath中的字段数据,然后导出成Excel

前提是:
1.InfoPath已经存到文档库中
2.已经对InfoPath的各个字段进行了赋值

我想得到的就是通过代码的方式怎样来实现
...全文
713 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
为梦追逐 2016-01-21
  • 打赏
  • 举报
回复
如何使用C#导出Infopath表单中的field值到一个txt文件中?
SPFarmer 2014-10-28
  • 打赏
  • 举报
回复
另外,也可以用web service读取列表项的。
SPFarmer 2014-10-28
  • 打赏
  • 举报
回复
引用 5 楼 Jackyqyd 的回复:
[quote=引用 3 楼 SPFarm 的回复:]
 using (SPSite site = new SPSite("your web url"))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    SPList list = web.Lists["form library name"];
                    SPListItem item = list.Items[0];

                    foreach (SPField f in item.Fields)
                    {
                        Console.WriteLine(f.Title + "  " + item[f.InternalName]);

                    }
                }
            }   
这个代码只是简单的写出来如何获取到各个列的值。还需要楼主根据自己的情况,找到自己的表单。 至于写到excel里,可以使用OpenXML 或者office API.
要是不匹配列表或文档项的话,能不能直接读InfoPath 我查了一下,网上说可以用Web Service的方式,但是这个方式是将InfoPath写入数据库好像是,但是有没有通过Web Service读取InfoPath的方式,我知道InfoPath的格式是XML的[/quote] 用web service读取infopath我倒是没听说过。如果要直接读infopath那就得分析XML了吧? 另外,如果楼主要导入到excel里的话,按照我说的方法绑定之后,在文档库的ribbon上,有导出到excel的功能,试一下这个?
迈克齐 2014-10-28
  • 打赏
  • 举报
回复
引用 3 楼 SPFarm 的回复:
 using (SPSite site = new SPSite("your web url"))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    SPList list = web.Lists["form library name"];
                    SPListItem item = list.Items[0];

                    foreach (SPField f in item.Fields)
                    {
                        Console.WriteLine(f.Title + "  " + item[f.InternalName]);

                    }
                }
            }   
这个代码只是简单的写出来如何获取到各个列的值。还需要楼主根据自己的情况,找到自己的表单。 至于写到excel里,可以使用OpenXML 或者office API.
要是不匹配列表或文档项的话,能不能直接读InfoPath 我查了一下,网上说可以用Web Service的方式,但是这个方式是将InfoPath写入数据库好像是,但是有没有通过Web Service读取InfoPath的方式,我知道InfoPath的格式是XML的
SPFarmer 2014-10-28
  • 打赏
  • 举报
回复
引用 2 楼 Jackyqyd 的回复:
[quote=引用 1 楼 SPFarm 的回复:] 在发布Infopath到SharePoint的时候,为infopath的每个列与SharePoint文档库的每个列做了匹配,那么就容易了。 如下图: 这样做之后,infopath表单的列,就是SharePoint文档库正常的列了,用SharePoint API就可以读取了。
那也就是说如果对infopath表单的字段与文档库列进行绑定? 上图是如何显示出来?[/quote] 上图是在用InfoPath发布到SharePoint的时候,向导里的一个步骤。
SPFarmer 2014-10-28
  • 打赏
  • 举报
回复
 using (SPSite site = new SPSite("your web url"))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    SPList list = web.Lists["form library name"];
                    SPListItem item = list.Items[0];

                    foreach (SPField f in item.Fields)
                    {
                        Console.WriteLine(f.Title + "  " + item[f.InternalName]);

                    }
                }
            }   
这个代码只是简单的写出来如何获取到各个列的值。还需要楼主根据自己的情况,找到自己的表单。 至于写到excel里,可以使用OpenXML 或者office API.
迈克齐 2014-10-28
  • 打赏
  • 举报
回复
引用 1 楼 SPFarm 的回复:
在发布Infopath到SharePoint的时候,为infopath的每个列与SharePoint文档库的每个列做了匹配,那么就容易了。 如下图: 这样做之后,infopath表单的列,就是SharePoint文档库正常的列了,用SharePoint API就可以读取了。
那也就是说如果对infopath表单的字段与文档库列进行绑定? 上图是如何显示出来?
SPFarmer 2014-10-28
  • 打赏
  • 举报
回复
在发布Infopath到SharePoint的时候,为infopath的每个列与SharePoint文档库的每个列做了匹配,那么就容易了。
如下图:


这样做之后,infopath表单的列,就是SharePoint文档库正常的列了,用SharePoint API就可以读取了。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 SharePoint
社区管理员
  • SharePoint社区
  • 霖雨 - LinyuLoveTJ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧