- 浏览: 190394 次
- 性别:
- 来自: 广州
文章分类
最新评论
在人员初始化的时候,通常会用到excel编辑好,导入到数据库中。此处就给出了excel转datatable的工具类,后续写入数据库就省略了
附件为需要用到的第三方dll
参考:https://www.cnblogs.com/lunawzh/p/7966214.html
附件是NPOi最新的2.3.0.0版本,里面的dll都需要引用
#region excel导入为datatable /// <summary> /// 将excel中的数据导入到DataTable中 /// </summary> /// <param name="isFirstRowColumn">第一行是否是DataTable的列名</param> /// <param name="fileName">文件路径</param> /// <param name="sheetName">excel工作薄sheet的名称</param> /// <returns>返回的DataTable</returns> public static DataTable ExcelToDataTable(bool isFirstRowColumn, string fileName, string sheetName = "") { if (string.IsNullOrEmpty(fileName)) { throw new ArgumentNullException(fileName); } var data = new DataTable(); IWorkbook workbook = null; FileStream fs = null; try { fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); if (fileName.IndexOf(".xlsx", StringComparison.Ordinal) > 0) { workbook = new XSSFWorkbook(fs); } if (fileName.IndexOf(".xls", StringComparison.Ordinal) > 0) { workbook = new HSSFWorkbook(fs); } ISheet sheet = null; if (workbook != null) { //如果没有找到指定的sheetName对应的sheet,则尝试获取第一个sheet if (sheetName == "") { sheet = workbook.GetSheetAt(0); } else { sheet = workbook.GetSheet(sheetName) ?? workbook.GetSheetAt(0); } } if (sheet == null) return data; var firstRow = sheet.GetRow(0); //一行最后一个cell的编号 即总的列数 int cellCount = firstRow.LastCellNum; int startRow; if (isFirstRowColumn) { for (int i = firstRow.FirstCellNum; i < cellCount; ++i) { var cell = firstRow.GetCell(i); var cellValue = cell.StringCellValue; if (cellValue == null) continue; var column = new DataColumn(cellValue); data.Columns.Add(column); } startRow = sheet.FirstRowNum + 1; } else { startRow = sheet.FirstRowNum; } //最后一列的标号 var rowCount = sheet.LastRowNum; for (var i = startRow; i <= rowCount; ++i) { var row = sheet.GetRow(i); //没有数据的行默认是null if (row == null) continue; var dataRow = data.NewRow(); for (int j = row.FirstCellNum; j < cellCount; ++j) { //同理,没有数据的单元格都默认是null if (row.GetCell(j) != null) dataRow[j] = row.GetCell(j).ToString(); } data.Rows.Add(dataRow); } return data; } catch (IOException ioex) { throw new IOException(ioex.Message); } catch (Exception ex) { throw new Exception(ex.Message); } finally { if (fs != null) { fs.Close(); } } } #endregion
附件为需要用到的第三方dll
参考:https://www.cnblogs.com/lunawzh/p/7966214.html
附件是NPOi最新的2.3.0.0版本,里面的dll都需要引用
- 附件.zip (1.6 MB)
- 下载次数: 0
发表评论
-
枚举类型帮助类 EnumHelper
2019-09-02 11:29 525项目中出现的问题: 项目中会有很多地方用到文字提醒,如果在每个 ... -
C# zip文件解压压缩帮助类
2019-08-30 11:43 589原文: https://www.cnblogs.com/sun ... -
使用ITextSharp对pdf文件打水印
2019-08-19 17:13 786在项目中需要对pdf文件中的部分信息进行遮挡隐藏,于是找到了I ... -
HMAC_SHA1加密
2019-08-16 10:36 987hmacsha1在很多签名计算中都很常用了,这里对两种可能返回 ... -
.NET/java Office组件神器——Aspose.Total 17.x/18.x/19.x破解版+破解补丁下载【转】
2019-07-29 15:22 2684先上大神的网站地址: [url] https://masuit ... -
通过UserAgent判断智能手机(设备,Android,IOS)【转】
2019-07-02 17:51 1046///<summary> /// ... -
8000401a 因为配置标识不正确,系统无法开始服务器进程。请检查用户名和密码【转】
2019-06-12 17:36 2324服务器使用了word的类库,在使用过程中日志报标题错误 解决 ... -
C#(同步调用、异步调用、异步回调)--转
2019-06-05 12:04 712本文将主要通过“同步调用”、“异步调用”、“异步回调”三个示例 ... -
C# 利用word书签写入自定义数据
2019-05-14 18:08 650原文参考地址: https://www.cnblogs.com ... -
C# 项目中引用office组件后在服务器遇到的问题集锦
2019-02-13 16:03 9531、要在服务器安装相同版本的office完整版程序 本地测试机 ... -
C# word转pdf
2019-01-17 14:55 687写在最前面,如果要部署,服务器需要安装相同版本的office, ... -
C# 操作word
2019-01-17 14:49 526需要单独引入的是COM中的Microsoft Office 1 ... -
给上传的文件生成缩略图(图片和视频)
2018-11-28 17:47 892备注:里面用到的ffmpeg ... -
获取视频文件的截图
2018-11-28 17:36 702视频获取第一帧截图的方法: https://www.cnblo ... -
DataTable导出excel
2018-11-02 16:36 1152网上有很多关于导出的例子,这里讲一个利用NPOI导出excel ... -
未能加载文件或程序集,System.Net.Http或它的某一个依赖项。系统找不到指定的文件。
2018-10-30 17:21 4787具体的错误描述: 未能加载文件或程序集“System.Net. ... -
EF重新封装查询
2018-10-22 17:49 1062今天搜索批量删除时,无意间翻到这篇文章感觉思路不错mark一下 ... -
EF中批量操作
2018-10-22 15:54 932在正常的使用过程中,如果要批量删除,需要先搜索符合条件的结果集 ... -
MVC学习之七_____上传多张图片
2018-09-19 15:55 1193图片上传控件:WebUploader 后台代码: pu ... -
MVC学习之六_____上传单张图片
2018-09-05 16:00 572模板页代码: @{ Layout = nul ...
相关推荐
下面我们将通过具体的代码示例来讲解如何利用 OLEDB 将 Excel 文件转换为 `DataTable`。 **步骤一:确定 Excel 文件类型** 根据提供的代码片段,首先我们需要确定 Excel 文件是 `.xls` 格式还是 `.xlsx` 格式。这...
根据给定文件内容,此文档主要介绍了如何将Excel文件转换为.NET环境中的DataTable,以及如何利用NPOI库来实现这一功能。NPOI是一个开源的.NET库,用于读写Microsoft Office格式的文件,特别是Excel。在.NET中处理...
在本项目中,可能使用了`HSSFWorkbook`或`XSSFWorkbook`对象打开Excel文件,然后通过`ISheet`和`IRow`接口获取数据,最后通过`ICell`对象读取每个单元格的内容。 4. **DataTable**:在将Excel数据转换为XML之前,...
- 使用EPPlus或NPOI,打开Excel文件并遍历工作表中的每个单元格,将数据加载到DataSet或DataTable中。 - 数据Set可以视作内存中的关系数据库,它包含一个或多个DataTable,每个DataTable代表一个Excel工作表。 - ...
通过以上步骤,Excel文件就被转换为DataSet,其中每个工作表对应一个DataTable。这种方式方便了对Excel数据的进一步处理,如查询、筛选、排序等。在实际开发中,可以根据具体需求进行优化,例如处理错误、验证数据...
首先,我们需要一个能够处理Excel文件的库。在.NET Framework中,Microsoft.Office.Interop.Excel是常见的选择,但这个库依赖于安装了Microsoft Office。另一种选择是使用开源的NPOI库,它不依赖于Office,适用于...
接下来,我们要将`DataTable`导出为Excel文件。在C#中,可以使用开源库如EPPlus来实现这个功能,它提供了对Excel 2007+ xlsx文件的强大支持。首先,需要在项目中引用EPPlus库,然后编写以下代码导出Excel: ```...
在描述中提到的“将XML数据转换为DataTable并将DataTable导出为Excel文件”,这是一个分两步的过程。第一步是使用XMLReader或其他类似的XML处理库(如LINQ to XML或XmlDocument)从XML文件中读取数据,并将其填充到...
例如,`writetable(dataTable, 'output.xlsx')`将把数据表`dataTable`保存到名为'output.xlsx'的Excel文件中。如果需要在特定工作表或特定行、列位置写入数据,可以使用额外的参数来指定。 4. **创建工作表**:如果...
然后,通过调用`GetOleDbSchemaTable`方法获取Excel文件中的所有表名,这些表名存储在一个DataTable对象`dtSheetName`中。遍历这个表格,查找不含$符号结尾的表名(通常是工作表名称),并将它们添加到`List<string>...
首先需要读取excel文件中的内容转为表格 string path为excel表格文件的在本地的地址 Stream fs为上传文件的流可以根据Request.Files[0].InputStream 获得 public DataTable GetexcelDataSet(string path,
最后,利用HttpResponse将内容输出到客户端,设置正确的编码、文件名和内容类型,以便浏览器自动处理为Excel文件下载。 这种方法避免了使用COM+组件(如Microsoft.Office.Interop.Excel)带来的部署复杂性和版本...
CSV文件导入DataTable和DataTable导出到Csv文件等操作 4.DEncrypt 加密/解密帮助类 DEncrypt C#DEncrypt加密/DEncrypt解密帮助类 ,多种方式,可以设置Key DESEncrypt C#DESEncrypt加密/DESEncrypt解密帮助类 ...
CSV文件导入DataTable和DataTable导出到Csv文件等操作 4.DEncrypt 加密/解密帮助类 DEncrypt C#DEncrypt加密/DEncrypt解密帮助类 ,多种方式,可以设置Key DESEncrypt C#DESEncrypt加密/DESEncrypt解密帮助类 ...