本文实例讲述了asp.net实现将Excel中多个sheet数据导入到SQLSERVER中的方法。分享给大家供大家参考,具体如下:
?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
|
public DataSet GetDataSet(string filePath)
{
string Connstr = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + filePath + "';Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'");
OleDbConnection Conn = new OleDbConnection(Connstr);
//创建ArrayList对象 存放所有sheetname
ArrayList sheetNamelist = new ArrayList();
//获取配置Excel中sheet总数(这里是根据项目需求配置的) 如果需要导入Excel表格所有sheet数据则将此代码删除
int sheetCount = Convert.ToInt32(ConfigurationManager.AppSettings["sheetCount"].ToString());
DataSet dsExcel = new DataSet();
try
{
if (Conn.State == ConnectionState.Closed)
{
Conn.Open();
}
DataTable dtExcelSchema = Conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
string sheetName = string.Empty;
if (dtExcelSchema.Rows.Count > sheetCount)
{
Page.RegisterStartupScript("", "<mce:script type="text/javascript"><!--
alert('很抱歉!你上传Excel文件sheet总数过多不能大于10个sheet..!! ')
// --></mce:script>");
return;
}
else
{
for (int j = 0; j < dtExcelSchema.Rows.Count; j++)
{
sheetName = String.Format("Sheet{0}$", j + 1);
sheetNamelist.Add(sheetName);
}
}
}
catch (Exception ex)
{
throw new Exception(ex.Message.ToString(), ex);
}
finally
{
Conn.Close();
}
try
{
string strSQL = string.Empty;
for (int i = 0; i < sheetNamelist.Count; i++)
{
strSQL = "select * from [" + sheetNamelist[i].ToString() + "]";
OleDbDataAdapter da = new OleDbDataAdapter(strSQL, Conn);
DataTable dtExcel = new DataTable(sheetNamelist[i].ToString());
da.Fill(dtExcel);
dsExcel.Tables.Add(dtExcel);
}
return dsExcel;
}
catch (Exception ex)
{
throw new Exception(ex.Message.ToString(), ex);
}
}
//从Excel 表中取出数据 将取出来的数据插入到数据库中
public void InsertData(DataSet ds) {
string strSQL=string.Empty;
if (ds.Tables[0].Rows.Count > 0)
{
for (int j = 0; j < ds.Tables.Count; j++)
{
for(int i=0;i<ds.Tables[j].Rows.Count;i++)
{
DataRow dr=ds.Tables[j].Rows[i];
//组名
string groupname = dr["组名"].ToString().Trim();
//联系人
string contactName = dr["联系人"].ToString().Trim();
//手机号码
string mobile = dr["手机号码"].ToString().Trim();
//公司名称
string companyName = dr["公司名称"].ToString().Trim();
//公办号码
string officeNum = dr["办公号码"].ToString().Trim();
//家庭号码
string homeNum = dr["家庭号码"].ToString().Trim();
//邮箱
string Email = dr["邮 箱"].ToString().Trim();
//联系地址
string address = dr["联系地址"].ToString().Trim();
//创建时间
string createtime = dr["创建时间"].ToString().Trim();
//性别
string Sex = dr["性别"].ToString().Trim();
//手机套餐类型
string mobileType = dr["手机套餐类型"].ToString().Trim();
//是否开通通信助理
string isOpen = dr["是否开通通信助理"].ToString().Trim();
//SQL 语句
strSQL = "insert into msm_Excel(groupName,Mobile,Name,companyName,officeNum,homeNum,Emial,address,Createtime,Sex,mobileType,isOpen)values('" + groupname + "','" + mobile + "','" + contactName + "','" + companyName + "','" + officeNum + "','" + homeNum + "','" + Email + "','" + address + "','" + createtime + "','" + Sex + "','" + mobileType + "','" + isOpen + "')";
try
{
int n = SQLHelper.SqlDataExecute(strSQL);
if (n > 0)
{
Page.RegisterStartupScript("", "<mce:script type="text/javascript"><!--
alert('数据插入成功!')
// --></mce:script>");
Label1.Text = "一共成功插入" + ds.Tables[j].Rows.Count.ToString() + "条数据";
}
else
{
Page.RegisterStartupScript("", "<mce:script type="text/javascript"><!--
alert('服务器繁忙!请稍候再试..!')
// --></mce:script>");
}
}
catch (Exception ex)
{
throw ex;
}
}
}
}
else {
Page.RegisterStartupScript("", "<mce:script type="text/javascript"><!--
alert('此Excel文件中无数据!!!')
// --></mce:script>");
}
}
//调用
//获取上传文件名
string fileName = FileUpload1.FileName;
//判断是否存在上传文件
if (FileUpload1.PostedFile.FileName.Length == 0) {
Page.RegisterStartupScript("", "<mce:script type="text/javascript"><!--
alert('请选择你要上传的Excel文件!!')
// --></mce:script>");
}
//判断上传的文件类型是否正确
else if (!Path.GetExtension(FileUpload1.PostedFile.FileName).ToLower().Equals(".xls") && !Path.GetExtension(FileUpload1.PostedFile.FileName).ToLower().Equals(".xlsx"))
{
Page.RegisterStartupScript("", "<script>alert('很抱歉!你上传的文件类型不正确!只能上传Excel类型的文件!')</script.");
}
else
{
//获取上传的文件路径
filePath = Server.MapPath("TxtFiles//") + DateTime.Now.ToString("yyyyMMddhhmmss") + fileName;
this.FileUpload1.PostedFile.SaveAs(filePath);
ds = GetDataSet(filePath);
InsertData(ds);
}
|
希望本文所述对大家asp.net程序设计有所帮助。
相关文章
猜你喜欢
- ASP.NET自助建站系统中的用户注册和登录功能定制方法 2025-06-10
- ASP.NET自助建站系统的域名绑定与解析教程 2025-06-10
- 个人服务器网站搭建:如何选择合适的服务器提供商? 2025-06-10
- ASP.NET自助建站系统中如何实现多语言支持? 2025-06-10
- 64M VPS建站:如何选择最适合的网站建设平台? 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
2025-05-29 79
-
2025-05-29 74
-
租用美国服务器有哪些要注意的事项(租用美国服务器有哪些要注意的事项)
2025-05-25 24 -
浅谈ASP.NET Core中间件实现分布式 Session
2025-05-29 107 -
2025-05-25 60
热门评论

