.NET C# 读写Excel及转换DataTable
目录
- .NET C# 读写Excel及转换DataTable
- 1. 依赖库
- 2. Nuget包与版本
- 3. ExcelUtil
- 3.1 Excel sheet 转 DataTable
- 3.2 Excel sheet 转 DataSet
- 3.3 DataTable 转 Excel sheet
- 3.4 DataSet 转 Excel
- 3.5 私有方法
.NET C# 读写Excel及转换DataTable
1. 依赖库
using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System.Data; using System.IO; using System.Text; using System.Text.RegularExpressions;
2. Nuget包与版本
3. ExcelUtil
3.1 Excel sheet 转 DataTable
/// /// Excel sheet 转 DataTable /// /// Excel文件路径 /// Sheet名称 /// 结果DataTable public static DataTable? FromExcel(string excelFilePath, string sheetName) { DataTable dataTable = new DataTable(sheetName); IWorkbook wb = GetWorkbook(excelFilePath); if (wb == null) { return null; } ISheet ws = wb.GetSheet(sheetName); if (ws == null) { return null; } if (ws.LastRowNum maxColumnNum) { maxColumnNum = row.LastCellNum; } } IRow headerRow = ws.GetRow(0); for (int columnIdx = 0; columnIdx3.4 DataSet 转 Excel
/// /// DataSet 转 Excel /// /// Excel文件路径 /// DataSet实例 /// 转换结果 public static bool ToExcel(string excelFilePath, DataSet dataSet) { bool allSuccess = true; foreach (DataTable dataTable in dataSet.Tables) { bool success = ToExcel(excelFilePath, dataTable); if (!success) { allSuccess = false; } } return allSuccess; }3.5 私有方法
private static IWorkbook GetWorkbook(string excelFilePath) { string extension = Path.GetExtension(excelFilePath); IWorkbook wb = null; FileStream fs = null; try { if (!File.Exists(excelFilePath)) { if (extension == ".xlsx" || extension == "xlsx") wb = new XSSFWorkbook(); else if (extension == ".xls" || extension == "xls") wb = new HSSFWorkbook(); else { AppLogger.Instance.Error($"错误文件类型{extension}!"); return null; } } else { fs = File.Open(excelFilePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); if (extension == ".xlsx" || extension == "xlsx") wb = new XSSFWorkbook(fs); else if (extension == ".xls" || extension == "xls") wb = new HSSFWorkbook(fs); else { AppLogger.Instance.Error($"错误文件类型{extension}!"); return null; } } return wb; } catch (Exception ex) { AppLogger.Instance.Error("读取Excel文件失败!", ex); return null; } finally { if (fs != null) try { fs.Close(); } catch { } } } static object? GetCellValue(ICell 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; } }cell.NumericCellValue;
case CellType.String: //STRING:
return cell.StringCellValue;
case CellType.Error: //ERROR:
return cell.ErrorCellValue;
case CellType.Formula: //FORMULA:
default:
return “=” + cell.CellFormula;
}
}
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

