private static string GetString(object obj) { try { return obj.ToString(); } catch (Exception ex) { return ""; } } /// <summary> ///將指定的Excel的文件轉換成DataTable (Excel的第一個sheet) /// </summary> /// <param name="fullFielPath">文件的絕對路徑</param> /// <returns></returns> public DataTable WorksheetToTable(string filePath) { try { FileInfo existingFile = new FileInfo(filePath); ExcelPackage package = new ExcelPackage(existingFile); ExcelWorksheet worksheet = package.Workbook.Worksheets[1];//選定 指定頁 return WorksheetToTable(worksheet); } catch (Exception) { throw; } } /// <summary> /// 將worksheet轉成datatable /// </summary> /// <param name="worksheet">待處理的worksheet</param> /// <returns>返回處理后的datatable</returns> public static DataTable WorksheetToTable(ExcelWorksheet worksheet) { //獲取worksheet的行數 int rows = worksheet.Dimension.End.Row; //獲取worksheet的列數 int cols = worksheet.Dimension.End.Column; DataTable dt = new DataTable(worksheet.Name); DataRow dr = null; for (int i = 1; i <= rows; i++) { if (i > 1) dr = dt.Rows.Add(); for (int j = 1; j <= cols; j++) { //默認將第一行設置為datatable的標題 if (i == 1) dt.Columns.Add(GetString(worksheet.Cells[i, j].Value)); //剩下的寫入datatable else dr[j - 1] = GetString(worksheet.Cells[i, j].Value); } } return dt; }