public void F_LoadExcel() { //引用//ReferenceCode/ExcelColumn.cs的類別 AMZForcast GetExcelDefine = new AMZForcast(); //導入匯入table GetExcelDefine.ForcastDT(); //上傳路徑 String savePath = Server.MapPath(@"~\ExcelUpLoad\Sales\AMZForcast"); DataTable D_table = new DataTable("Excel"); //建立Excel欄位 D_table = GetExcelDefine.ForcastDataTable.Copy(); DataTable D_errortable = new DataTable("Error"); //實際顯示欄位 int Excel欄位數 = D_table.Columns.Count - 2; if (F_CheckData()) { if (文件上傳FU.HasFile) { String fileName = 文件上傳FU.FileName; Session["FileName"] = fileName; savePath = savePath + fileName; 文件上傳FU.SaveAs(savePath); string str頁簽名稱 = ""; //Label1.Text = "Kiểm tra tệp tin dữ liệu thành công, tên tệp tin---- " + fileName; //-------------------------------------------------- //---- (以上是)上傳 FileUpload的部分,成功運作! //-------------------------------------------------- #region D_table //D_table.Columns.Add("SheetName"); //D_table.Columns.Add("閱卷序號"); //D_table.Columns.Add("款號"); //D_table.Columns.Add("組別"); //D_table.Columns.Add("日期"); //D_table.Columns.Add("工號"); //D_table.Columns.Add("工段"); //D_table.Columns.Add("數量"); #endregion #region ErrorTable // D_errortable.Columns.Add("SheetName"); D_errortable.Columns.Add("款號"); //D_errortable.Columns.Add("尺寸"); //D_errortable.Columns.Add("顏色"); //D_errortable.Columns.Add("訂單數量"); //D_errortable.Columns.Add("可用庫存量"); D_errortable.Columns.Add("Error"); #endregion if (fileName.Substring(fileName.Length - 4, 4).ToUpper() == "XLSX") { XSSFWorkbook workbook = new XSSFWorkbook(文件上傳FU.FileContent); //==只能讀取 System.IO.Stream for (int x = 0; x < workbook.NumberOfSheets; x++) { XSSFSheet u_sheet = (XSSFSheet)workbook.GetSheetAt(x); //-- 0表示:第一個 worksheet工作表 XSSFRow headerRow = (XSSFRow)u_sheet.GetRow(3); //-- Excel 表頭列 IRow DateRow = (IRow)u_sheet.GetRow(2); //-- v.1.2.4版修改 //Session["Date"] = SearchTB.Text; str頁簽名稱 = u_sheet.SheetName.ToString(); //-- for迴圈的「啟始值」要加一,表示不包含 Excel表頭列 // for (int i = (u_sheet.FirstRowNum + 1); i <= u_sheet.LastRowNum; i++) //-- 每一列做迴圈 //i=1第二列開始 for (int i = 1; i <= u_sheet.LastRowNum; i++) //-- 每一列做迴圈 { //--不包含 Excel表頭列的 "其他資料列" IRow row = (IRow)u_sheet.GetRow(i); F_資料確認(D_table, D_errortable, str頁簽名稱, row); } //-- 釋放 NPOI的資源 u_sheet = null; } //-- 釋放 NPOI的資源 workbook = null; ////--Excel資料顯示 //DataView D_View2 = new DataView(D_table); //ExcelGV.DataSource = D_View2; //ExcelGV.DataBind(); //--錯誤資料顯示 if (D_errortable.Rows.Count > 0) { DataView D_View3 = new DataView(D_errortable); ErrorGV.DataSource = D_View3; ErrorGV.DataBind(); } //-------------------------------------------------- //---- (以下是)上傳 FileUpload的部分! //-------------------------------------------------- } else { HSSFWorkbook workbook = new HSSFWorkbook(文件上傳FU.FileContent); //==只能讀取 System.IO.Stream for (int x = 0; x < workbook.NumberOfSheets; x++) { HSSFSheet u_sheet = (HSSFSheet)workbook.GetSheetAt(x); //-- 0表示:第一個 worksheet工作表 HSSFRow headerRow = (HSSFRow)u_sheet.GetRow(3); //-- Excel 表頭列 IRow DateRow = (IRow)u_sheet.GetRow(2); //-- v.1.2.4版修改 //Session["Date"] = SearchTB.Text; str頁簽名稱 = u_sheet.SheetName.ToString(); for (int i = 1; i <= u_sheet.LastRowNum; i++) //-- 每一列做迴圈 { //--不包含 Excel表頭列的 "其他資料列" IRow row = (IRow)u_sheet.GetRow(i); F_資料確認(D_table, D_errortable, str頁簽名稱, row); } //-- 釋放 NPOI的資源 u_sheet = null; } //-- 釋放 NPOI的資源 workbook = null; ////--Excel資料顯示 //DataView D_View2 = new DataView(D_table); //ExcelGV.DataSource = D_View2; //ExcelGV.DataBind(); //--錯誤資料顯示 if (D_errortable.Rows.Count > 0) { DataView D_View3 = new DataView(D_errortable); ErrorGV.DataSource = D_View3; ErrorGV.DataBind(); } //-------------------------------------------------- //---- (以下是)上傳 FileUpload的部分! //-------------------------------------------------- } } else { F_ErrorShow("???? ...... 請先挑選檔案之後,再來上傳"); } // FileUpload使用的第一個 if判別式 if (D_table.Rows.Count > 0) { Session["Excel"] = D_table; } else { Session["Excel"] = null; } if (D_errortable.Rows.Count > 0) { Session["ExcelError"] = D_errortable; } else { Session["ExcelError"] = null; ErrorGV.DataSource = null; ErrorGV.DataBind(); } } else { //if (F_CheckData() == false) // Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>alert('當日已有匯入資料');</script>"); //else // Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>alert('請選擇匯入日期');</script>"); } }
public void F_LoadExcel() { //引用//ReferenceCode/ExcelColumn.cs的類別 AMZForcast GetExcelDefine = new AMZForcast(); //導入匯入table GetExcelDefine.ForcastDT(); //上傳路徑 String savePath = Server.MapPath(@"~\ExcelUpLoad\Sales\AMZForcast"); DataTable D_table = new DataTable("Excel"); //建立Excel欄位 D_table = GetExcelDefine.ForcastDataTable.Copy(); DataTable D_errortable = new DataTable("Error"); //實際顯示欄位 int Excel欄位數 = D_table.Columns.Count - 2; //啟始周 if (文件上傳FU.HasFile) { String fileName = 文件上傳FU.FileName; Session["FileName"] = fileName; savePath = savePath + fileName; 文件上傳FU.SaveAs(savePath); string str頁簽名稱 = ""; //-------------------------------------------------- //---- (以上是)上傳 FileUpload的部分,成功運作! //-------------------------------------------------- #region ErrorTable D_errortable.Columns.Add("Error"); #endregion if (fileName.Substring(fileName.Length - 4, 4).ToUpper() == "XLSX") { XSSFWorkbook workbook = new XSSFWorkbook(文件上傳FU.FileContent); //==只能讀取 System.IO.Stream for (int x = 0; x < workbook.NumberOfSheets; x++) { XSSFSheet u_sheet = (XSSFSheet)workbook.GetSheetAt(x); //-- 0表示:第一個 worksheet工作表 XSSFRow headerRow = (XSSFRow)u_sheet.GetRow(0); //-- Excel 表頭列 IRow DateRow = (IRow)u_sheet.GetRow(2); //-- v.1.2.4版修改 str頁簽名稱 = u_sheet.SheetName.ToString(); string strtime = headerRow.GetCell(1).ToString(); //-- for迴圈的「啟始值」要加一,表示不包含 Excel表頭列 // for (int i = (u_sheet.FirstRowNum + 1); i <= u_sheet.LastRowNum; i++) //-- 每一列做迴圈 //i=1第二列開始 for (int i = 1; i <= u_sheet.LastRowNum; i++) //-- 每一列做迴圈 { //--不包含 Excel表頭列的 "其他資料列" IRow row = (IRow)u_sheet.GetRow(i); F_資料確認(D_table, D_errortable, str頁簽名稱, row); } //-- 釋放 NPOI的資源 u_sheet = null; } //-- 釋放 NPOI的資源 workbook = null; ////--Excel資料顯示 //DataView D_View2 = new DataView(D_table); //ExcelGV.DataSource = D_View2; //ExcelGV.DataBind(); //--錯誤資料顯示 if (D_errortable.Rows.Count > 0) { DataView D_View3 = new DataView(D_errortable); ErrorGV.DataSource = D_View3; ErrorGV.DataBind(); } //-------------------------------------------------- //---- (以下是)上傳 FileUpload的部分! //-------------------------------------------------- } else { HSSFWorkbook workbook = new HSSFWorkbook(文件上傳FU.FileContent); //==只能讀取 System.IO.Stream for (int x = 0; x < workbook.NumberOfSheets; x++) { HSSFSheet u_sheet = (HSSFSheet)workbook.GetSheetAt(x); //-- 0表示:第一個 worksheet工作表 HSSFRow headerRow = (HSSFRow)u_sheet.GetRow(3); //-- Excel 表頭列 IRow DateRow = (IRow)u_sheet.GetRow(2); //-- v.1.2.4版修改 //Session["Date"] = SearchTB.Text; str頁簽名稱 = u_sheet.SheetName.ToString(); for (int i = 1; i <= u_sheet.LastRowNum; i++) //-- 每一列做迴圈 { //--不包含 Excel表頭列的 "其他資料列" IRow row = (IRow)u_sheet.GetRow(i); F_資料確認(D_table, D_errortable, str頁簽名稱, row); } //-- 釋放 NPOI的資源 u_sheet = null; } //-- 釋放 NPOI的資源 workbook = null; ////--Excel資料顯示 //DataView D_View2 = new DataView(D_table); //ExcelGV.DataSource = D_View2; //ExcelGV.DataBind(); //--錯誤資料顯示 if (D_errortable.Rows.Count > 0) { DataView D_View3 = new DataView(D_errortable); ErrorGV.DataSource = D_View3; ErrorGV.DataBind(); } //-------------------------------------------------- //---- (以下是)上傳 FileUpload的部分! //-------------------------------------------------- } } else { F_ErrorShow("???? ...... 請先挑選檔案之後,再來上傳"); } // FileUpload使用的第一個 if判別式 if (D_table.Rows.Count > 0) { Session["Excel"] = D_table; } else { Session["Excel"] = null; } if (D_errortable.Rows.Count > 0) { Session["ExcelError"] = D_errortable; } else { Session["ExcelError"] = null; ErrorGV.DataSource = null; ErrorGV.DataBind(); } }