예제 #1
0
        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>");
            }
        }
예제 #2
0
        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();
            }
        }