NPOIHelper.cs (NPOI 2.1.1)
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Data;
- using System.IO;
- using NPOI.XSSF.UserModel;
- using NPOI.SS.UserModel;
- namespace NetLib
- {
- public static class NPOIHelper
- {
- public static void ExportToFile(DataSet dataSet, string fileFullPath)
- {
- List<DataTable> dts = new List<DataTable>();
- foreach (DataTable dt in dataSet.Tables) dts.Add(dt);
- ExportToFile(dts, fileFullPath);
- }
- public static void ExportToFile(DataTable dataTable, string fileFullPath)
- {
- List<DataTable> dts = new List<DataTable>();
- dts.Add(dataTable);
- ExportToFile(dts, fileFullPath);
- }
- public static void ExportToFile(IEnumerable<DataTable> dataTables, string fileFullPath)
- {
- IWorkbook workbook = new XSSFWorkbook();
- int i = ;
- foreach(DataTable dt in dataTables)
- {
- string sheetName = string.IsNullOrEmpty(dt.TableName)
- ? "Sheet " + (++i).ToString()
- : dt.TableName;
- ISheet sheet = workbook.CreateSheet(sheetName);
- IRow headerRow = sheet.CreateRow();
- for (int j = ; j < dt.Columns.Count; j++)
- {
- string columnName = string.IsNullOrEmpty(dt.Columns[j].ColumnName)
- ? "Column " + j.ToString()
- : dt.Columns[j].ColumnName;
- headerRow.CreateCell(j).SetCellValue(columnName);
- }
- for (int a = ; a < dt.Rows.Count; a++)
- {
- DataRow dr = dt.Rows[a];
- IRow row = sheet.CreateRow(a + );
- for (int b = ; b < dt.Columns.Count; b++)
- {
- row.CreateCell(b).SetCellValue(dr[b] != DBNull.Value ? dr[b].ToString() : string.Empty);
- }
- }
- }
- using (FileStream fs = File.Create(fileFullPath))
- {
- workbook.Write(fs);
- }
- }
- public static List<DataTable> GetDataTablesFrom(string xlsxFile)
- {
- if (!File.Exists(xlsxFile))
- throw new FileNotFoundException("文件不存在");
- List<DataTable> result = new List<DataTable>();
- Stream stream = new MemoryStream(File.ReadAllBytes(xlsxFile));
- IWorkbook workbook = new XSSFWorkbook(stream);
- for (int i = ; i < workbook.NumberOfSheets; i++)
- {
- DataTable dt = new DataTable();
- ISheet sheet = workbook.GetSheetAt(i);
- IRow headerRow = sheet.GetRow();
- int cellCount = headerRow.LastCellNum;
- for (int j = headerRow.FirstCellNum; j < cellCount; j++)
- {
- DataColumn column = new DataColumn(headerRow.GetCell(j).StringCellValue);
- dt.Columns.Add(column);
- }
- int rowCount = sheet.LastRowNum;
- for (int a = (sheet.FirstRowNum + ); a < rowCount; a++)
- {
- IRow row = sheet.GetRow(a);
- if (row == null) continue;
- DataRow dr = dt.NewRow();
- for (int b = row.FirstCellNum; b < cellCount; b++)
- {
- if (row.GetCell(b) == null) continue;
- dr[b] = row.GetCell(b).ToString();
- }
- dt.Rows.Add(dr);
- }
- result.Add(dt);
- }
- stream.Close();
- return result;
- }
- }
- }
NPOI 项目: http://npoi.codeplex.com/
本地下载:http://files.cnblogs.com/bruceleeliya/NPOI2.1.1.zip
NPOIHelper.cs (NPOI 2.1.1)的更多相关文章
- C#利用NPOI处理excel的类 NPOIHelper.cs
个人的NPOIHelp类,包括datatable导出到excel,dataset导出到excel,excel导入到datatable,excel导入到dataset, 更新excel中的数据,验证导入 ...
- C# 或 JQuery导出Excel
首先要添加NPOI.dll文件 然后添加类:NPOIHelper.cs using System; using System.Data; using System.Configuration; usi ...
- [转]NPOI TestFunctionRegistry.cs
本文转自:https://github.com/tonyqus/npoi/blob/master/testcases/main/SS/Formula/TestFunctionRegistry.cs ...
- Topshelf+Quartz.net+Dapper+Npoi(二)
quartznet 上篇说到quartznet这个东东,topshelf+quartznet有很多不错的文章,可以查看七七同学的文章(http://www.cnblogs.com/jys509/p/4 ...
- .Net操作Excel —— NPOI
近期的两个项目都有关于NPOI的功能,经过了一点学习,自己也摸索了一会,感觉还有点意思.现在将部分代码分享一下.一部分是C#代码,一部分是VB.Net的,懒得修改了,基本上都是从项目文件中copy出来 ...
- 基于NPOI的Excel数据导入
从Excel导入数据最令人头疼的是数据格式的兼容性,特别是日期类型的兼容性.为了能够无脑导入日期,折腾了一天的NPOI.在经过测试确实可以导入任意格式的合法日期后,写下这篇小文,与大家共享.完整代码请 ...
- 基于NPOI导出和导入Excel
概述 NPOI,顾名思义,就是POI的.NET版本.NPOI就是用.NET语言编写的一套数据导出Excel的开源项目,支持XML.xls.xlsx.ppt等格式..NET不仅实现Excel导出还可以实 ...
- (C#)使用NPOI导出Excel
在做业务型的软件时,经常需要将某些数据导出,本文介绍了在Winform或Asp.net中使用NPOI(POI 项目的 .NET 版本)来操作Excel文件,而无需安装Office. 首先,需要获取NP ...
- NPOI操作Excel辅助类
/// <summary> /// NPOI操作excel辅助类 /// </summary> public static class NPOIHelper { #region ...
随机推荐
- 替换系统数据库解决SQLSERVER服务启动不了的问题
替换系统数据库解决SQLSERVER服务启动不了的问题 当遇到SQLSERVER服务启动不起来的时候,我们试过把系统的四个数据库master ,model ,tempdb,msdb 替换掉,Windo ...
- 使用Js脚本 修改控制IE的注册表相关设置(activex等)
使用Js脚本 修改控制IE的注册表相关设置(activex等) 分类: PHP2012-12-05 18:51 2035人阅读 评论(2) 收藏 举报 脚本写法: <SCRIPT LANGUAG ...
- git删除push到远程服务器的commit
如果不小心把不该提交的代码或者敏感的数据(如密码)提交到远程git服务器上,可以使用git reset回滚到上一个commit,并且commit history不留下任何痕迹. 具体做法: # 1.通 ...
- [游戏模版11] Win32 动画 时间消息
>_<:This time we will study a new way to operate your picture.That is running your picture by ...
- [JS2] JS是弱类型
<html> <head> <title>JavaScript 是弱类型的</title> <Script Language="Java ...
- [BTS] The value "" for the property InboundId is invalid
Microsoft.ServiceModel.Channels.Common.MetadataException: Retrieval of Operation Metadata has failed ...
- 【Android】混淆器(ProGuard)
混淆器(ProGuard) 混淆器通过删除从未用过的代码和使用晦涩名字重命名类.字段和方法,对代码进行压缩,优化和混淆.结果是一个比较小的.apk文件,该文件比较难进行逆向工程.因此,当你的应用程序对 ...
- [jQuery学习系列六]6-jQuery实际操作小案例
前言最后在这里po上jQuery的几个小案例. Jquery例子1_占位符使用需求: 点击第一个按钮后 自动去check 后面是否有按钮没有选中, 如有则提示错误消息. <html> &l ...
- Java的从浅至深绕坑而行的学习
package day02; /** * 1:java初学习,避免面试时一些HR挖的坑. * @author biexiansheng * */ public class Test02 { publi ...
- javaweb学习总结(十六)——JSP指令
一.JSP指令简介 JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分. 在JSP 2.0规范中共定义了三个指令: pa ...