|
代碼:
/// <summary> /// 打開Excel文件 /// </summary> /// <param name="ExcelFileName">文件名</param> private void OpenExcelFile(string ExcelFileName) { Excel.Application App = new Excel.Application(); if (App == null) { return; //Excel尚未安裝 } Excel.Workbook workbook = App.Workbooks.Open(@ExcelFileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); CultureInfo CurrentCI = System.Threading.Thread.CurrentThread.CurrentCulture; try { App.Visible = false; App.DisplayAlerts = false; Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); ProcessExcelData(workbook); } finally { App.Quit(); Marshal.ReleaseComObject(workbook); while (Marshal.ReleaseComObject(App) > 0) ; workbook = null; App = null; GC.Collect(); Thread.CurrentThread.CurrentCulture = CurrentCI; } }
/// <summary> /// 提取Excel表格數(shù)據(jù) /// </summary> /// <param name="InputWorkbook"></param> /// <returns></returns> private Excel.Workbook ProcessExcelData(Excel.Workbook InputWorkbook) { Excel.Sheets sheets = InputWorkbook.Worksheets; Excel.Worksheet DataSheet = null; foreach (Worksheet sheet in sheets) { if (sheet.Name.ToLower() == "sheet1") { DataSheet = sheet; break; } } if (null == DataSheet) { return InputWorkbook; }
庫存批次表 Bll = new 庫存批次表(); 庫存批次表Info Model; object TmpObj; Excel.Range FieldsRange = DataSheet.get_Range("A2", "K7"); System.Array FieldNames = (System.Array)FieldsRange.Formula; for (int i = 0; i < FieldNames.GetLength(0); i++) { Model = new 庫存批次表Info();
TmpObj = FieldNames.GetValue(i + 1, 1); Model.貨品ID = Convert.ToDecimal(TmpObj);
TmpObj = FieldNames.GetValue(i + 1, 2); Model.貨品編碼 = Convert.ToDecimal(TmpObj);
TmpObj = FieldNames.GetValue(i + 1, 3); Model.批次號 = Convert.ToString(TmpObj);
TmpObj = FieldNames.GetValue(i + 1, 4); Model.入庫日期 = Convert.ToDateTime(TmpObj.ToString());
TmpObj = FieldNames.GetValue(i + 1, 5); Model.入庫單號 = Convert.ToString(TmpObj);
TmpObj = FieldNames.GetValue(i + 1, 6); Model.入庫信息 = Convert.ToString(TmpObj);
TmpObj = FieldNames.GetValue(i + 1, 7); Model.生產(chǎn)日期 = Convert.ToDateTime(TmpObj.ToString());
TmpObj = FieldNames.GetValue(i + 1, 8); Model.過期日期 = Convert.ToDateTime(TmpObj.ToString());
TmpObj = FieldNames.GetValue(i + 1, 9); Model.入庫數(shù)量 = Convert.ToDecimal(TmpObj);
TmpObj = FieldNames.GetValue(i + 1, 10); Model.出庫數(shù)量 = Convert.ToDecimal(TmpObj);
TmpObj = FieldNames.GetValue(i + 1, 11); Model.結存數(shù)量 = Convert.ToDecimal(TmpObj);
Bll.Insert(Model); } FieldsRange = null; FieldNames = null; return InputWorkbook; }
調(diào)用方法:
OpenExcelFile(Server.MapPath(@"../UploadFile/")+strFileURL);
|