1.下载excel模板
<a target="_blank" style="margin-right: 100px;" href="/Files/xxxx.xls">[导入模板下载]</a>
2.上传excel数据文件
3.处理上传上来的excel文件
4.将excel中的数据保存到数据库中
protected void btnUp_Click(object sender, ImageClickEventArgs e) { double djid = 0; double.TryParse(Request.QueryString["djid"], out djid); HttpFileCollection files = Request.Files;//客服端上载文件的集合 var path = Server.MapPath(ConfigManager.GetWebConfigurationManager("ExceFilePath"));//ExcelFilePath 为文件存放位置在webconfig中进行配置 if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } int ifile;//单个文件,变量 for (ifile = 0; ifile < files.Count; ifile++)//循环取出每一张图片进行操作:大小?扩展名? { HttpPostedFile postedfile = files[ifile];//posted代表一个上载图片 if (postedfile.InputStream.Length > 0) { int index = postedfile.FileName.LastIndexOf('.'); var ext = postedfile.FileName.Substring(index + 1); if (CommonHelper.IsEquals(ext, new string[] { "xls", "xlsx" })) { path = path.Trim('/').Trim('\') + "/" + Guid.NewGuid().ToString("N") + "." + ext; postedfile.SaveAs(path); var dt = GetTableData(path); SaveData(djid, dt);//用于保存数据 //CommonHelper.DelFile(path); } } } } private DataTable GetTableData(string sExcelFile) { DataSet ds = new DataSet(); try { string stro = (sExcelFile.Contains(".xlsx") ? "Provider=Microsoft.ACE.OLEDB.12.0;" : "Provider=Microsoft.Jet.OLEDB.4.0;") + "Data source=" + sExcelFile + ";" + "Extended Properties=Excel 8.0"; //Excel的连接 OleDbConnection objConn = new OleDbConnection(stro); objConn.Open(); DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); string tableName = schemaTable.Rows[0][2].ToString().Trim();//获取 Excel 的表名,默认值是sheet1 string strSql = "select * from [" + tableName + "]"; OleDbCommand objCmd = new OleDbCommand(strSql, objConn); OleDbDataAdapter myData = new OleDbDataAdapter(strSql, objConn); myData.Fill(ds, tableName);//填充数据 } catch { } return ds != null && ds.Tables.Count > 0 ? ds.Tables[0] : null; }
private void SaveData(double djid, DataTable dt) { bool flag = false; if (dt == null || djid < 1) return; try { IList<BCgqdbBase> GoodsList = new List<BCgqdbBase>(); foreach (DataRow dr in dt.Rows) { if (dr["材料名称"] == DBNull.Value) continue; var cBase = new BCgqdbBase(); cBase.CPMC = dr["物资名称"].ToString(); cBase.CSJPZ = dr["规格型号"].ToString(); cBase.DW = dr["单位"].ToString(); cBase.SL = Convert.ToDouble(dr["数量"] == null || dr["数量"].ToString() == "" ? "0" : dr["数量"]); cBase.YSXJ = Convert.ToDouble(dr["不含税单价"] == null || dr["不含税单价"].ToString() == "" ? "0" : dr["不含税单价"]); cBase.ZCS = dr["品牌"].ToString(); cBase.BZ = dr["备注"].ToString(); cBase.CODE = dr["编码"].ToString(); cBase.SLZ = Convert.ToDouble(dr["税率"] == null || dr["税率"].ToString() == "" ? "0" : dr["税率"]); GoodsList.Add(cBase); } //数据保存到数据库 } catch { } JScript.ExecutionJS(this,"top.window.location=top.window.location.href;"); }