C# Excel导入导出数据(二)——客户端上传文件到服务器

以下代码补充,客户端web网页导入数据到sql 数据库时,涉及到的文件上传小知识。

这里使用了web服务器文件上传控件,有些赘述,代码不够简洁,见谅。

View Code
 1 private void subInsert()
2 {
3 string Message = string.Empty;
4 string WebFilePath = string.Empty;
5 string LocalFilePath = string.Empty;
6 if (!string.IsNullOrEmpty(this.UpFile.Value.Trim()))
7 {
8 LocalFilePath = this.UpFile.Value.Trim();
9 #region 由本地上传到站点所在服务器,然后读取
10 bool fileOK = false;
11 WebFilePath = Server.MapPath("..");
12 WebFilePath = Directory.GetParent(Directory.GetParent(WebFilePath).ToString()).ToString().Replace("\\","/") + "/ExcelDoc/";
13 if (!Directory.Exists(WebFilePath))
14 {
15 Directory.CreateDirectory(WebFilePath);
16 }
17 string fileExtension = System.IO.Path.GetExtension(LocalFilePath).ToLower();
18 string[] allowedExtensions = { ".xls" };
19 for (int j = 0; j < allowedExtensions.Length; j++)
20 {
21 if (fileExtension == allowedExtensions[j])
22 {
23 fileOK = true;
24 }
25 }
26
27 if (fileOK)
28 {
29 string fileName = string.Empty;
30 fileName = "充值卡信息" + DateTime.Now.ToString("yyyyMMddhhmmss")+System.IO.Path.GetExtension(LocalFilePath).ToLower();
31 WebFilePath += fileName;
32 //这一句是由客户端上传至服务器的关键代码,否则不能实现
33 this.UpFile.PostedFile.SaveAs(WebFilePath);
34 if (!string.IsNullOrEmpty(this.SheetName))
35 {
36 #region 此操作被服务器安全设置阻止
37 //int i =TongLu.DatasInfo.DataLayer.DBHelper.ExcelOperation.InsertDataListIntoSql(Request["Url"], this.SheetName);
38 //if (i == 0)
39 //{
40 // Response.Write(TongLu.PMethod.Caution.GetJavaScriptBack("导入失败"));
41 //}
42 //else {
43 // Response.Write(TongLu.PMethod.Caution.GetJavaScriptBack("导入成功"));
44 //}
45 #endregion
46 ArrayList AL = TongLu.DatasInfo.DataLayer.DBHelper.ExcelOperation.GetExcelSheetNameList(WebFilePath);
47 if (AL != null && AL.Count != 0)
48 {
49 if (!AL.Contains(this.SheetName + "$"))
50 {
51 Message = "Excel表中不存在此子工作表,请确认包含字母的大小写一致后继续导入";
52 }
53 else
54 {
55 DataSet ds = TongLu.DatasInfo.DataLayer.DBHelper.ExcelOperation.LoadDataFromExcel(WebFilePath, this.SheetName);
56 Message = TongLu.DatasInfo.DataLayer.DBHelper.ExcelOperation.DataSetOperator(ds);
57 //Message = TongLu.DatasInfo.DataLayer.DBHelper.ExcelOperation.ExcelToSql(ds, "chain_CashPhone_Card");
58 }
59 }
60 else
61 {
62 Message = "该表不存在任何子表或者文件放在C盘为独占空间,请确认文件放在C盘外的其他盘";
63 }
64 }
65 else
66 {
67 ArrayList AL = TongLu.DatasInfo.DataLayer.DBHelper.ExcelOperation.GetExcelSheetNameList(WebFilePath);
68 DataSet datas = new DataSet();
69 if (AL != null && AL.Count != 0)
70 {
71 for (int i = 0; i < AL.Count; i++)
72 {
73 DataSet ds = TongLu.DatasInfo.DataLayer.DBHelper.ExcelOperation.LoadDataFromExcel(WebFilePath, AL[i].ToString());
74 datas.Tables.Add(ds.Tables[0].Copy());
75
76 //Message = TongLu.DatasInfo.DataLayer.DBHelper.ExcelOperation.ExcelToSql(ds, "chain_CashPhone_Card");
77 }
78 Message = TongLu.DatasInfo.DataLayer.DBHelper.ExcelOperation.DataSetOperator(datas);
79 }
80 else
81 {
82 Message = "该表不存在任何子表或者文件放在C盘为独占空间,请确认文件放在C盘外的其他盘";
83 }
84 }
85 }
86 #endregion
87 Response.Write(TongLu.PMethod.Caution.GetJavaScriptBack(Message));
88 }
89 else
90 {
91 Response.Write(TongLu.PMethod.Caution.GetJavaScriptBack("请先选择路径"));
92 }
93
94 }


若有更简洁,方便的实现,更高技术含量的代码,会随时补充。各位看客也可发表看法,或提出更好的实现,供大家一起学习。

posted on 2012-03-22 15:39  未来证明现在  阅读(2381)  评论(2编辑  收藏  举报

导航