四 导入
来源:互联网 发布:淘宝点卡退款 编辑:程序博客网 时间:2024/04/30 01:09
导入
(1)导入一张Excel表:
(图 1)
(图 2)
实现界面的代码:
<html><head> <script src="../../Scripts/jquery-1.4.4.js" type="text/javascript"></script> <script src="../../Scripts/jquery-1.4.4.min.js" type="text/javascript"></script><script type="text/javascript"> function daoru() { window.location.href = "/Main/DownloadFile"; }</script></head><body><input type="button" value="导出" onclick="daoru()"/> <a href="/Main/ExportExcel">Click here</a><form action="/Main/GetTableFromExcel" method="post" enctype="multipart/form-data"> //调用控制器的方法 <text>选择上传文件</text> <input name="file1" type="file" id="file" /> <input type="submit" name="Upload" value="导入" /> </form> </body></html>
调用控制器的方法:
#endregion //导入 public ActionResult GetTableFromExcel() { HttpPostedFileBase fostFile = Request.Files["file1"]; Stream streamfile = fostFile.InputStream; HSSFWorkbook hssfworkbook = new HSSFWorkbook(streamfile); using (NPOI.SS.UserModel.ISheet sheet = hssfworkbook.GetSheetAt(0)) { DataTable table = new DataTable(); IRow headerRow = sheet.GetRow(0);//第一行为标题行 int cellCount = headerRow.LastCellNum;//LastCellNum = PhysicalNumberOfCells int rowCount = sheet.LastRowNum;//LastRowNum = PhysicalNumberOfRows - 1 //handling header. for (int i = headerRow.FirstCellNum; i < cellCount; i++) { DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue); table.Columns.Add(column); } for (int i = (sheet.FirstRowNum + 1); i <= rowCount; i++) { IRow row = sheet.GetRow(i); DataRow dataRow = table.NewRow(); if (row != null) { for (int j = row.FirstCellNum; j < cellCount; j++) { if (row.GetCell(j) != null) dataRow[j] = GetCellValue(row.GetCell(j)); } } table.Rows.Add(dataRow); } for (int i = 0; i < table.Rows.Count; i++) { myUpLoadBLL.ForDownLoad(table.Rows[i][1].ToString(), table.Rows[i][2].ToString(),Convert.ToBoolean( table.Rows[i][3]));//调用逻辑层的方法 } } return Content(""); } /// <summary> /// 根据Excel列类型获取列的值 /// </summary> /// <param name="cell">Excel列</param> /// <returns></returns> private static string GetCellValue(ICell cell) { if (cell == null) return string.Empty; switch (cell.CellType) { case CellType.BLANK: return string.Empty; case CellType.BOOLEAN: return cell.BooleanCellValue.ToString(); case CellType.ERROR: return cell.ErrorCellValue.ToString(); case CellType.NUMERIC: case CellType.Unknown: default: return cell.ToString(); case CellType.STRING: return cell.StringCellValue; case CellType.FORMULA: try { HSSFFormulaEvaluator e = new HSSFFormulaEvaluator(cell.Sheet.Workbook); e.EvaluateInCell(cell); return cell.ToString(); } catch { return cell.NumericCellValue.ToString(); } } }
逻辑层的方法:
#region 导入 public int ForDownLoad(string Name,string Age,bool Gender) { //创建数组 SqlParameter[] sql ={ //实例化并传入参数和参数类型 new SqlParameter("@type",SqlDbType.Char), new SqlParameter("@Name",SqlDbType.NVarChar), new SqlParameter("@Age",SqlDbType.NVarChar), new SqlParameter("@Gender",SqlDbType.Bit), }; //为参数赋值 sql[0].Value = "ForDownLoad"; sql[1].Value = Name; sql[2].Value = Age; sql[3].Value = Gender; //调用DAL方法连接数据库提取数据存放到数据表dt中 int count = myPublicMoth.UpdateData("ForUpLoadAndDownLoad", sql); //返回dt return count; } #endregion
数据层的SQL语句:
@type char(100)='',@Name varchar(50)='',@Age varchar(10)='',@Gender bit=0if(@type='ForDownLoad')beginInsert into Person(Name,Age,Gender)VALUES(@Name,@Age,@Gender)End
只供学习参考!
0 0
- 四 导入
- css四种导入方式
- css四种导入方式
- 在Eclipse中导入jar文件四
- html之四种方法导入css...
- MEF系列四:声明导入(Imports)
- Hive四种数据导入方式介绍
- 数据泵的导入导出(四)
- Hive四种数据导入方式介绍
- hive 数据导入的四种方法
- Hive四种数据导入方式介绍
- Hive四种数据导入方式
- Hive四种数据导入方式介绍
- Hive四种数据导入方式
- Hive四种数据导入方式
- Hive四种数据导入方式
- Hive(四)--数据导入导出方式
- Hive四种数据导入方式
- 快速排序算法
- [Android Studio 权威教程]Linux下安装Android Studio
- HDU1249 三角形 递推
- forward 和redirect的区别
- (1)基本运算+复数+字符串
- 四 导入
- 加密服务
- ORACLE 11G在同一台linux服务器从实例1全库导入到实例2上
- 面试题:是否可以从一个static方法内部发出对非static方法的调用?
- OJ刷题---希尔排序
- PAT 1022. Digital Library
- Android 通过名称获取资源ID
- 进程切换、创建、加载
- Android基础系列-----------Android系统启动过程简析