SharePoint2013导入Excel到列表
using Microsoft.SharePoint;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Text; namespace MySharePointProject.UploadExcelVisualWebPart
{
[ToolboxItemAttribute(false)]
public partial class UploadExcelVisualWebPart : WebPart
{
// 仅当使用检測方法对场解决方式进行性能分析时才取消凝视下面 SecurityPermission
// 特性。然后在代码准备进行生产时移除 SecurityPermission 特性
// 特性。由于 SecurityPermission 特性会绕过针对您的构造函数的调用方的
// 安全检查,不建议将它用于生产。
// [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Assert, UnmanagedCode = true)]
public UploadExcelVisualWebPart()
{
} protected override void OnInit(EventArgs e)
{
base.OnInit(e);
InitializeControl();
} protected void Page_Load(object sender, EventArgs e)
{
} protected void btnUpload_Click(object sender, EventArgs e)
{
//取得XML配置文件里的导入配置,第一项字符串所代表的是须要把Excel第一列导入到的SharePoint栏名
List<string> lis = getAppManager("123");
//把文件上传到本地
this.ExcelFileUpload.SaveAs(@"C:\a\test.xlsx"); ImportExcel(lis, @"C:\a\test.xlsx", "WageList", "");// "/2014/1"
}
/// <summary>
/// 从配置文件XML取得列表
/// </summary>
/// <param name="strListId"></param>
/// <returns></returns>
private List<string> getAppManager(string strListId)
{
List<string> FieldList = new List<string>();
XElement root = XElement.Load(@"C:\XMLFile1.xml");//XElement.Load(System.Web.HttpContext.Current.Server.MapPath("XMLFile1.xml"));
IEnumerable<XElement> address = from el in root.Elements("listId")
where (string)el.Attribute("id") == strListId
select el;
foreach (XElement el in address)
{
foreach (XNode node in el.Nodes())
{
XElement nod = (XElement)node;
string FieldName = nod.Value;
FieldList.Add(FieldName);
}
}
return FieldList;
}
/// <summary>
///
/// </summary>
/// <param name="l">配置列表</param>
/// <param name="filePath">Excel 文件路径</param>
/// <param name="listName">列表名称</param>
/// <param name="folder">列表目录</param>
private void ImportExcel(List<string> l, string filePath, string listName, string folder)
{
DataTable dt = ExcelToDS(filePath);
SPSite spSite = SPContext.Current.Site; SPWeb spWeb = spSite.RootWeb; SPList list = spWeb.GetListFromUrl("/Lists/" + listName + "/AllItems.aspx");
foreach (DataRow row in dt.AsEnumerable())
{
//向列表中指定的目录中加入列表项
SPListItem spListItem = list.AddItem("/Lists/WageList" + folder, SPFileSystemObjectType.File);
for (int i = 0; i < l.Count; i++)
{
spListItem[spListItem.Fields[l[i]].InternalName] = row[i];
} //别忘了保存
spListItem.Update();
} }
/// <summary>
/// 传入Excel的地址,得到Sheet1的DataTable
/// </summary>
/// <param name="Path"></param>
/// <returns></returns>
public DataTable ExcelToDS(string Path)
{
string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "Data Source=" + Path + ";" + "Extended Properties='Excel 12.0;HDR=Yes;IMEX=1';"; OleDbConnection conn = new OleDbConnection(strConn);
try
{
DataTable dt = new DataTable();
if (conn.State != ConnectionState.Open)
conn.Open();
string strExcel = "select * from [Sheet1$]";
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, conn);
adapter.Fill(dt);
return dt;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
if (conn.State != ConnectionState.Closed)
conn.Close();
}
}
}
}
SharePoint2013导入Excel到列表的更多相关文章
- [Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!
引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...
- Oracle导入excel数据方法汇总[转]
摘要:在程序编制过程和数据汇总交换过程中,经常会碰到需要将其他人员在office办公环境下编制的文件数据内容导入oracle中的情况.目前程序开发者经常使用的方法有如下几种:1,使用oracle提供的 ...
- 使用NPOI生成Excel级联列表
目录 1 概要 1 2 磨刀不误砍柴工——先学会Excel中的操作 2 3 利用NPOI生成导入模板 7 3.1 设置workbook&sheet ...
- 结合bootstrap fileinput插件和Bootstrap-table表格插件,实现文件上传、预览、提交的导入Excel数据操作流程
1.bootstrap-fileinpu的简单介绍 在前面的随笔,我介绍了Bootstrap-table表格插件的具体项目应用过程,本篇随笔介绍另外一个Bootstrap FieInput插件的使用, ...
- 纳税服务系统【用户模块之使用POI导入excel、导出excel】
前言 再次回到我们的用户模块上,我们发现还有两个功能没有完成: 对于将网页中的数据导入或导出到excel文件中,我们是完全没有学习过的.但是呢,在Java中操作excel是相对常用的,因此也有组件供我 ...
- EasyPoi导入Excel
EasyPoi的导出Excel功能和导入功能同样简单.我之前强调过,EasyPoi的原理本质就是Poi,正如MyBatis Plus的本质原理就是MyBatis. POI导入功能可以参考如下地址:ht ...
- 转:[Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!
引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...
- springboot批量导入excel数据
1 背景 小白今天闲着没事,在公司摸鱼,以为今天有事无聊的一天,突然上头说小子,今天实现一下批量导入Excel数据吧,当时我的内心是拒绝的,然后默默打开idea. 2 介绍 2.1 框架 java本身 ...
- 从零开始实现放置游戏(六)——实现挂机战斗(4)导入Excel数值配置
前面我们已经实现了在后台管理系统中,对配置数据的增删查改.但每次添加只能添加一条数据,实际生产中,大量数据通过手工一条一条添加不太现实.本章我们就实现通过Excel导入配置数据的功能.这里我们还是以地 ...
随机推荐
- js splice()方法
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目. 注释:该方法会改变原始数组. 实例 例子 1 在本例中,我们将创建一个新数组,并向其添加一个元素: <script ty ...
- 前端:微信支付和支付宝支付在pc端和h5页面中的应用
1:h5微信支付 使用的是https://pay.weixin.qq.com/wiki/doc/api/index.html 中的 (1):公司需要首先要配置公众号微信支付地址和测试白名单(支付的时 ...
- C#中使用 HttpWebRequest 向网站提交数据
HttpWebRequest 是 .NET 基类库中的一个类,在命名空间 System.Net 里,用来使用户通过 HTTP 协议和服务器交互. HttpWebRequest 对 HTTP 协议进行了 ...
- Yii2系列教程七:Behaviors And Validations
这一篇文章的开头就无需多言了,紧接着上一篇的内容和计划,这一篇我们来说说Yii2的Behavior和Validations. Behavior 首先我们来说说Behavior,在Yii2中Behavi ...
- 2014秋C++第5周项目1參考-见识刚開始学习的人常见错误
课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,实践要求见http://blog.csdn.net/sxhelijian/a ...
- Refactoring之——代码的坏味道(一)过长方法
1 代码的坏味道 重构一书中提到了22种代码的坏味道,大致可以分为几类. 识别代码的坏味道,有助于发现代码的潜在问题,从而可以有的放矢的修改现有代码,使之不断完善. 1.1 Bloaters(臭鲱,暂 ...
- SSH 基于ajax实现修改密码功能步骤梳理
1. 为密码输入框进行输入校验,使用easyUI提供的easyui-validatebox <table cellpadding=3> <tr> <td>新密码:& ...
- Redis 配置文件及命令详解
==基本配置 daemonize no 是否以后台进程启动 databases 16 创建database的数量(默认选中的是database 0) save 900 1 #刷新快照到硬盘中,必须满足 ...
- 使用 Google 高级搜索的一些技巧
一,GOOGLE简介 Google(www.google.com)是一个搜索引擎,由两个斯坦福大学博士生Larry Page与Sergey Brin于1998年9月发明,Google Inc. 于 ...
- unity, 对于Debug.Log输出的log,可以双击定位到代码
unity, 对于Debug.Log输出的log,可以双击定位到代码