C#NPOI读取Excel
来源:互联网 发布:优学派软件下载 编辑:程序博客网 时间:2024/06/05 02:24
/// <summary>/// 2007版Excel/// </summary>/// <param name="file"></param>/// <returns></returns>public static DataTable ExcelToTableForXLSX(string file){DataTable dt = new DataTable();using (FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read)){NPOI.XSSF.UserModel.XSSFWorkbook xssfworkbook = new NPOI.XSSF.UserModel.XSSFWorkbook(fs);NPOI.SS.UserModel.ISheet sheet = xssfworkbook.GetSheetAt(0);//表头 NPOI.SS.UserModel.IRow header = sheet.GetRow(sheet.FirstRowNum);List<int> columns = new List<int>();for (int i = 0; i < header.LastCellNum; i++){object obj = GetValueTypeForXLSX(header.GetCell(i) as NPOI.XSSF.UserModel.XSSFCell);if (obj == null || obj.ToString() == string.Empty){dt.Columns.Add(new DataColumn("Columns" + i.ToString()));//continue; }elsedt.Columns.Add(new DataColumn(obj.ToString()));columns.Add(i);}//数据 for (int i = sheet.FirstRowNum + 1; i <= sheet.LastRowNum; i++){DataRow dr = dt.NewRow();bool hasValue = false;foreach (int j in columns){dr[j] = GetValueTypeForXLSX(sheet.GetRow(i).GetCell(j) as NPOI.XSSF.UserModel.XSSFCell);if (dr[j] != null && dr[j].ToString() != string.Empty){hasValue = true;}}if (hasValue){dt.Rows.Add(dr);}}}return dt;}/// <summary> /// 获取单元格类型(xlsx) /// </summary> /// <param name="cell"></param> /// <returns></returns> private static object GetValueTypeForXLSX(XSSFCell cell){if (cell == null)return null;switch (cell.CellType){case CellType.BLANK: //BLANK: return null;case CellType.BOOLEAN: //BOOLEAN: return cell.BooleanCellValue;case CellType.NUMERIC: //NUMERIC: return cell.NumericCellValue;case CellType.STRING: //STRING: return cell.StringCellValue;case CellType.ERROR: //ERROR: return cell.ErrorCellValue;case CellType.FORMULA: //FORMULA: default:return "=" + cell.CellFormula;}}/// <summary> /// 将Excel文件中的数据读出到DataTable中(xls) /// </summary> /// <param name="file"></param> /// <returns></returns> public static DataTable ExcelToTableForXLS(string file){DataTable dt = new DataTable();using (FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read)){HSSFWorkbook hssfworkbook = new HSSFWorkbook(fs);ISheet sheet = hssfworkbook.GetSheetAt(0);//表头 IRow header = sheet.GetRow(sheet.FirstRowNum);List<int> columns = new List<int>();for (int i = 0; i < header.LastCellNum; i++){object obj = GetValueTypeForXLS(header.GetCell(i) as HSSFCell);if (obj == null || obj.ToString() == string.Empty){dt.Columns.Add(new DataColumn("Columns" + i.ToString()));//continue; }elsedt.Columns.Add(new DataColumn(obj.ToString()));columns.Add(i);}//数据 for (int i = sheet.FirstRowNum + 1; i <= sheet.LastRowNum; i++){DataRow dr = dt.NewRow();bool hasValue = false;foreach (int j in columns){dr[j] = GetValueTypeForXLS(sheet.GetRow(i).GetCell(j) as HSSFCell);if (dr[j] != null && dr[j].ToString() != string.Empty){hasValue = true;}}if (hasValue){dt.Rows.Add(dr);}}}return dt;}/// <summary> /// 获取单元格类型(xls) /// </summary> /// <param name="cell"></param> /// <returns></returns> private static object GetValueTypeForXLS(HSSFCell cell){if (cell == null)return null;switch (cell.CellType){case CellType.BLANK: //BLANK: return null;case CellType.BOOLEAN: //BOOLEAN: return cell.BooleanCellValue;case CellType.NUMERIC: //NUMERIC: return cell.NumericCellValue;case CellType.STRING: //STRING: return cell.StringCellValue;case CellType.ERROR: //ERROR: return cell.ErrorCellValue;case CellType.FORMULA: //FORMULA: default:return "=" + cell.CellFormula;}}
阅读全文
0 0
- C#NPOI读取Excel
- NPOI读取Excel
- NPOI读取excel数据
- NPOI读取excel
- NPOI读取Excel
- c# NPOI EXcel读取
- Npoi导出Excel、读取Excel
- NPOI 读取 excel通用类
- c#用npoi读取excel
- NPOI读取Excel笔记总结
- C#用NPOI读取excel
- 使用NPOI读取Excel文件
- Npoi 读取EXCEL 2003 2007
- NPOI读取EXCEL到datagridview
- NPOI操作Excel 002:读取Excel
- [源码分享]NPOI读取Excel到 dataTable
- asp.net C# NPOI 读取 Excel 文件
- NPOI 创建Excel,数据读取与写入
- Codeforces 831 C Jury Marks
- 字符串转换为整数,以及整数转换为字符串的函数
- Eclipse启动项目成功,IDEA报错java.lang.ClassNotFoundException: javax.servlet.Filter
- 观点|如何做好计算机视觉的研究?
- Eqs POJ
- C#NPOI读取Excel
- groupByKey 和reduceByKey 的区别:
- 算法--分治法寻找中值
- 白话debounce和throttle
- 3ds Max插件开发(一)Wizard 安装
- QT学习-1.Hello Word解析
- dumpsys 常用命令
- TCP的握手与挥手
- 话语笔录-坚持