//Export data to excel via NPOI

public static void ExportDataTableToExcel(DataTable dataTable, string excelFileName = null)
{
if (dataTable == null)
{
return;
}
XSSFWorkbook workbook = new XSSFWorkbook();
ISheet firstSheet = workbook.CreateSheet();
IRow headerRow = firstSheet.CreateRow();
var dtColumns = dataTable.Columns;
var dtColumnsCount = dtColumns.Count; for (int i = ; i < dtColumnsCount; i++)
{
string headerName = dtColumns[i].ColumnName;
ICell headerCell = headerRow.CreateCell(i);
headerCell.SetCellValue(headerName);
} for (int i = ; i < dataTable.Rows.Count; i++)
{
var dataRow = firstSheet.CreateRow(i + );
for (int j = ; j < dtColumnsCount; j++)
{
ICell dataCell = dataRow.CreateCell(j);
var cellValue = dataTable.Rows[i][j];
dataCell.SetCellValue(cellValue?.ToString());
}
} for (int i = ; i < dtColumnsCount; i++)
{
firstSheet.AutoSizeColumn(i);
} if (string.IsNullOrEmpty(excelFileName))
{
excelFileName = Directory.GetCurrentDirectory() + DateTime.Now.ToString("yyyyMMddmmssffff") + ".xlsx";
}
using (FileStream excelStream = new FileStream(excelFileName, FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
workbook.Write(excelStream);
}
}

//Convert excel file to DataTable

 public static DataTable ConvertExcelToDataTable(string excelFile)
{
if(string.IsNullOrEmpty(excelFile))
{
return new DataTable();
}
IWorkbook workbook;
DataTable dt = new DataTable();
using (FileStream excelStream = new FileStream(excelFile, FileMode.Open,FileAccess.Read))
{
workbook = new XSSFWorkbook(excelStream);
} ISheet firstSheet = workbook.GetSheetAt();
var columnsCount = firstSheet.GetRow().LastCellNum;
for(int i=;i<columnsCount;i++)
{
dt.Columns.Add();
}
for(int i=;i<=firstSheet.LastRowNum;i++)
{
IRow workbookRow = firstSheet.GetRow(i);
List<string> stringList = new List<string>();
for (int j = ; j < columnsCount; j++)
{
string cellValue = workbookRow.GetCell(j).StringCellValue;
stringList.Add(cellValue);
} dt.Rows.Add(stringList.ToArray());
}
return dt;
}

ExcelHelper based on NPOI的更多相关文章

  1. Excel操作--使用NPOI导入导出Excel为DataTable

    1.ExcelHelper封装 namespace NPOI操作Excel { public class ExcelHelper { /// <summary> /// DataTable ...

  2. .net实现一个简单的通用查询数据、导出Excel的网页

    背景:临时提供一个简单的网页,供其他人浏览数据库(Oracel.MSSQL)的某些数据,并导出Excel.支持在配置文件中随时添加或修改sql. 实现:把sql语句等信息保存一个xml文件中,前端页面 ...

  3. 【转】ExcelHelper类,用npoi读取Excel文档

    //------------------------------------------------------------------------------------- // All Right ...

  4. 基于NPOI开源框架写的ExcelHelper【转载】

    namespace ExcelTest { using System; using System.Collections.Generic; using System.Data; using Syste ...

  5. x01.ExcelHelper: NPOI 操作

    Excel 操作,具有十分明显的针对性,故很难通用,但这并不妨碍参考后以解决自己的实际问题. 有一汇总表如下: 当然,只是示范,产品的代码应该唯一!现在要根据此汇总表产生各个客户的产品清单.由于客户较 ...

  6. ExcelHelper ->NPOI插件

    调用: var ms = ExcelHelper.PrintInvoiceToExcel("观看时长", headline, items, (row, item) => { ...

  7. C#通过NPOI操作Excel

    参考页面: http://www.yuanjiaocheng.net/webapi/create-crud-api-1-post.html http://www.yuanjiaocheng.net/w ...

  8. NPOI导出Excel (C#) 踩坑 之--The maximum column width for an individual cell is 255 charaters

    /******************************************************************* * 版权所有: * 类 名 称:ExcelHelper * 作 ...

  9. NPOI、MyXls、Aspose.Cells 导入导出Excel(转)

    Excel导入及导出问题产生: 从接触.net到现在一直在维护一个DataTable导s出到Excel的类,时不时还会维护一个导入类.以下是时不时就会出现的问题: 导出问题: 如果是asp.net,你 ...

随机推荐

  1. JS 中 判断数据类型 typeof详解

    typeof 可用来获取检测变量的数据类型 语法 typeof operand typeof(operand) 参数 operand   一个表示对象或原始值的表达式,其类型将被返回. 描述 下表总结 ...

  2. 第三方库Mantle的简单实用

    1. 测试时, 可以使用下面这个网址及代码来测试, 里面有模型,数组,以及字典, 还可以有long long 转NSDate,  string 转 int等. NSURL *url = [NSURLU ...

  3. c++ lesson 一(命名空间输入输出)

    // // main.cpp // C++lessonOne // // Created by keyan on 15/11/13. // Copyright © 2015年 keyan. All r ...

  4. (一)创建新的react native 应用程序

    最近开始学习ReactNative了,首先了解下ReactNative http://wiki.jikexueyuan.com/project/react-native/GettingStarted. ...

  5. 【Gradle】Gradle构建脚本基础

    Gradle构建脚本基础 Settings文件 在Gradle中,定义了一个设置文件,用于初始化以及工程树的配置.设置文件的默认名为settings.gradle,放在根工程目录下. 设置文件大多数的 ...

  6. Vue实战狗尾草博客管理平台第五章

    本章主要内容如下: 静态资源服务器的配置.学会如何使用静态资源服务器引入静态资源.并给大家推荐一个免费可使用的oss服务器~ 页面的开发由于近期做出的更改较大.就放在下一篇中. 静态资源服务器 静态资 ...

  7. python 逐行读取txt文件

    逐行读取txt文件 path = r'D:\123456\1.txt'with open(path, 'r', encoding='utf-8') as f:    for line in f:   ...

  8. docker卷管理(四)

    什么是数据卷 overlay2存储卷 docker镜像是由多个只读层叠加而成,启动容器时,docker会加载只读镜像层,并在镜像栈顶部添加一个可写层 如果运行中的容器修改了现有的一个已存在文件,那该文 ...

  9. 28.Java基础_抽象类

    抽象类的成员特点 public abstract class Animal { private String name; private int age; public Animal() { } pu ...

  10. HTTP与HTTPS初识

    HTTP HTTP是一个属于应用层的协议,特点是简介.快速   HTTP客户端发起请求,创建端口HTTP服务器在端口监听客户端请求HTTP服务器向客户端返回状态和内容 网络请求,页面渲染 1.域名解析 ...