C#_NPOI_DataTable导入导出Execl数据,代码逻辑简单明了,不多讲,一下请查看。
首先引入Execl NPOI程序集,百度上有的下载;
官网链接在此:NPOI官方下载地址
下载好之后,解压引入新建的项目程序中来:如图 我这里使用的WindowsForm应用程序 名称为NPOI_EXECL
然后再新建一个单独的类,因为考虑到可能封装跟扩展,新建类名为:ExeclHelper.cs
顾名思义为Execl帮助类;
接下来看代码,此类新鞋两个静态方法;一个是ExcelToDataTable(string filePath, bool isColumnName) 很明显 这是从execl文件导入数据到Datatable。另外一个为DataTableToExcel(DataTable dt,string Outpath),这是从现有的Datatable数据源中导出数据到Execl文件。
代码如下:
//==============================================================
// 作者:zhoupei
// 时间:2019/1/18 8:23:54
// 文件名:ExeclHelper
// 版本:V1.0.1
// 说明:读取Execl到DataGridviewer以及从程序导出数据到Execl
//==============================================================
/// <summary>
/// Execl工具辅助类
/// </summary>
public class ExeclHelper
{
/// <summary>
/// 读取Execl数据到DataTable中
/// </summary>
/// <param name="filePath">指定Execl文件路径</param>
/// <param name="isColumnName">设置第一行是否是列名</param>
/// <returns>返回一个DataTable数据集</returns>
public static DataTable ExcelToDataTable(string filePath, bool isColumnName)
{
DataTable dataTable = null;
FileStream fs = null;
DataColumn column = null;
DataRow dataRow = null;
IWorkbook workbook = null;
ISheet sheet = null;
IRow row = null;
ICell cell = null;
int startRow = 0;
try
{
using (fs = File.OpenRead(filePath))
{
// 2007版本
if (filePath.IndexOf(".xlsx") > 0)
workbook = new XSSFWorkbook(fs);
// 2003版本
else if (filePath.IndexOf(".xls") > 0)
workbook = new HSSFWorkbook(fs);
if (workbook != null)