using SQLData; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Data.OleDb; using System.IO; using System.Linq; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using SiteCore; using BizCom; using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.HPSF; public partial class EDelivery_DeliveredImportUpload : ReportBase { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { } } private bool checkFile(HttpPostedFile postedFile) { if (postedFile != null && postedFile.ContentLength > 0) { string fileName = postedFile.FileName; if (fileName.IndexOf(".xls", StringComparison.OrdinalIgnoreCase) == -1) return false; string fileType = postedFile.ContentType; if (fileType == "application/vnd.ms-excel" || fileType == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") return true; } return false; } //protected void btnSure_Click(object sender, EventArgs e) //{ // HttpPostedFile postedFile = xlsFile.PostedFile; // if (!checkFile(postedFile)) // { // litResult.Text = "选择上传的文件格式不正确,无法上传,格式是xls或xlsx!"; // return; // } // string exted = Path.GetExtension(postedFile.FileName); // string filePath = System.Environment.GetEnvironmentVariable("TMP"); // string file = filePath + "\\Delivered" + DateTime.Now.ToFileTime() + exted; // postedFile.SaveAs(file); // if (File.Exists(file)) // { // DataSet ds = ExcelDataSource(file); // DataTable dt = ds.Tables[0]; // StringBuilder str = new StringBuilder(); // foreach (DataRow dr in dt.Rows) // { // //订单号为空则当前行不导入 // string ctid = dr[0].ToString().Trim(); // if (ctid == "") // continue; // string Logistics = dr[1].ToString().Trim(); // string Supplier = dr[2].ToString().Trim(); // string LogisticsNum = dr[3].ToString().Trim(); // CeErpTradeCell entity = null; // entity = CeErpTradeCell.GetByCtid(ctid); // CeErpExpressInfo ExpEntity = null; // ExpEntity = CeErpExpressInfo.GetByCtid(ctid); // if (entity != null && ExpEntity == null) // { // str.Append(" insert into CE_ErpExpressInfo(tid,company_name,out_sid,supplierUserName,importUserId,import_file,import_time)"); // str.AppendFormat(" Values('{0}','{1}','{2}','{3}',{5},'{4}',getdate());", ctid, Logistics, LogisticsNum, Supplier, postedFile.FileName,CurrentUser.UserID); // str.Append(" insert into CE_ErpTradeLog(tid,OrderState,UserId,OperateTime,Con,AfterSaleState)"); // str.AppendFormat(" Values('{0}',7,'{1}',getdate(),'{2}',0);", ctid, CurrentUser.UserID, "导入发货"); // } // } // if (str.Length > 0) // { // DbHelper.DbConn.ExecuteNonQuery(str.ToString()); // litResult.Text = "导入成功!"; // ShowResult("导入成功", "closeFn()"); // } // else // { // litResult.Text = "所有发货单号已存在,无法重复导入!"; // ShowResult("所有发货单号已存在,无法重复导入!", ""); // } // } //} protected void btnSure_Click(object sender, EventArgs e) { if (Request.Files.Count > 0 && Request.Files[0].FileName != "") { HttpPostedFile file = Request.Files[0]; UploadFile(file); iSheet = hssfworkbook.GetSheetAt(0); System.Collections.IEnumerator rows = iSheet.GetRowEnumerator(); int i = 0; StringBuilder str = new StringBuilder(); List keys = new List(); string ctids_add = ""; while (rows.MoveNext()) { if (i == 0) { i++; continue; } IRow row = (HSSFRow)rows.Current; ICell cell = row.GetCell(0); if (cell == null) break; //订单号为空则当前行不导入 string ctid = row.GetCell(0).ToString().Trim(); if (ctid == "") continue; if (ctids_add.IndexOf(ctid) != -1) continue; ctids_add += ctid; ctids_add += ","; string Logistics = row.GetCell(1).ToString().Trim(); string Supplier = row.GetCell(2).ToString().Trim(); string LogisticsNum = row.GetCell(3).ToString().Trim(); CeErpTradeCell entity = null; entity = CeErpTradeCell.GetByCtid(ctid); CeErpExpressInfo ExpEntity = null; ExpEntity = CeErpExpressInfo.GetByCtid(ctid); if (entity != null && ExpEntity == null) { str.Append(" insert into CE_ErpExpressInfo(tid,company_name,out_sid,supplierUserName,importUserId,import_file,import_time,print_time,printUser)"); str.AppendFormat(" Values('{0}','{1}','{2}','{3}',{5},'{4}',getdate(),getdate(),'{3}');", ctid, Logistics, LogisticsNum, Supplier, Request.Files[0].FileName, CurrentUser.UserID); str.Append(" insert into CE_ErpTradeLog(tid,OrderState,UserId,OperateTime,Con,AfterSaleState)"); str.AppendFormat(" Values('{0}',7,'{1}',getdate(),'{2}',0);", ctid, CurrentUser.UserID, "导入发货"); i++; } } if (i > 1) { try { DbHelper.DbConn.ExecuteNonQuery(str.ToString()); } catch (Exception ex) { XLog.SaveLog(0, "导入发货" + "," + ex.Message); } litResult.Text = "导入成功!"; ShowResult("导入成功", "closeFn()"); } else { litResult.Text = "所有订单号已存在,无法重复导入!"; ShowResult("所有订单号已存在,无法重复导入!"); } } } public void UploadFile(HttpPostedFile file) { //FileStream f = new FileStream( Stream s = file.InputStream; hssfworkbook = new HSSFWorkbook(s); DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation(); dsi.Company = "领淘"; hssfworkbook.DocumentSummaryInformation = dsi; SummaryInformation si = PropertySetFactory.CreateSummaryInformation(); si.Subject = excelName; hssfworkbook.SummaryInformation = si; } public static DataSet ExcelDataSource(string filepath) { //string strConn = "Provider=Microsoft.ACE.OleDb.12.0;Data Source=" + filepath + ";Extended Properties='Excel 12.0;HDR=yes;IMEX=1;'"; string strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;"; using (OleDbConnection conn = new OleDbConnection(strConn)) { conn.Open(); DataTable sheetNames = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); ArrayList al = new ArrayList(); foreach (DataRow dr in sheetNames.Rows) { al.Add(dr[2]); } OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + al[0] + "]", strConn); DataSet ds = new DataSet(); oada.Fill(ds); conn.Close(); return ds; } } }