ExcelHelper based on NPOI
//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的更多相关文章
- Excel操作--使用NPOI导入导出Excel为DataTable
1.ExcelHelper封装 namespace NPOI操作Excel { public class ExcelHelper { /// <summary> /// DataTable ...
- .net实现一个简单的通用查询数据、导出Excel的网页
背景:临时提供一个简单的网页,供其他人浏览数据库(Oracel.MSSQL)的某些数据,并导出Excel.支持在配置文件中随时添加或修改sql. 实现:把sql语句等信息保存一个xml文件中,前端页面 ...
- 【转】ExcelHelper类,用npoi读取Excel文档
//------------------------------------------------------------------------------------- // All Right ...
- 基于NPOI开源框架写的ExcelHelper【转载】
namespace ExcelTest { using System; using System.Collections.Generic; using System.Data; using Syste ...
- x01.ExcelHelper: NPOI 操作
Excel 操作,具有十分明显的针对性,故很难通用,但这并不妨碍参考后以解决自己的实际问题. 有一汇总表如下: 当然,只是示范,产品的代码应该唯一!现在要根据此汇总表产生各个客户的产品清单.由于客户较 ...
- ExcelHelper ->NPOI插件
调用: var ms = ExcelHelper.PrintInvoiceToExcel("观看时长", headline, items, (row, item) => { ...
- C#通过NPOI操作Excel
参考页面: http://www.yuanjiaocheng.net/webapi/create-crud-api-1-post.html http://www.yuanjiaocheng.net/w ...
- NPOI导出Excel (C#) 踩坑 之--The maximum column width for an individual cell is 255 charaters
/******************************************************************* * 版权所有: * 类 名 称:ExcelHelper * 作 ...
- NPOI、MyXls、Aspose.Cells 导入导出Excel(转)
Excel导入及导出问题产生: 从接触.net到现在一直在维护一个DataTable导s出到Excel的类,时不时还会维护一个导入类.以下是时不时就会出现的问题: 导出问题: 如果是asp.net,你 ...
随机推荐
- 练手WPF(一)——模拟时钟与数字时钟的制作(中)
今天接着制作数字时钟 数字时钟主要用到Path控件,主要用于定义数字笔划的形状. (1)添加一个DigitLine类 数字时钟的数字8由7笔组成,看如下定义的字段字符串数组PathDatas,每个st ...
- C#比较两个对象中的指定字段值是否相等
一.创建CompareFieldAttribute标识要比较的字段 using System; namespace CompareObjField { /// <summary> /// ...
- Web前端基础(1):HTML(一)
1. HTML概述 1.1 什么是HTML HTML称为超文本标记语言,是一种标识性的语言.它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体.H ...
- css3自适应布局单位vw,vh详解
视口单位(Viewport units) 什么是视口? 在桌面端,视口指的是在桌面端,指的是浏览器的可视区域:而在移动端,它涉及3个视口:Layout Viewport(布局视口),Visual Vi ...
- MySQL数据库(三)锁机制
MyISAM默认使用表级锁,不支持行级锁 InnoDB默认使用行级锁,也支持表级锁 表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生锁冲突的概率最高,并发度最低. 行级锁:开销大,加锁慢:会出现 ...
- 如何下载Youtube上的视频, 字幕, MP3等资源, 方法简单直接!
Youtube不用多说了吧,秒杀国内一众视频平台,没有之一, 既然关注Youtube说明大家对Youtube都是认同的.不用说4K,8K视频,比起国内一些伪4K, 真的良心, 就连广告也是5秒跳过, ...
- 6.Java基础_Java自增自减/关系/逻辑/三元运算符
/* 自增自减运算符 关系运算符 逻辑运算符 三元运算符 (同C++) */ public class OperatorDemo01 { public static void main(String[ ...
- Jmeter怎么搭建环境
1.JDK检查与安装 cmd输入命令:java -version -- 检查主机是否安装了JDK JDK下载官网:https://www.oracle.com/technetwork/java/j ...
- python将xml文件数据增强(labelimg)
在处理faster-rcnn和yolo时笔者使用labelimg标注图片 但是我们只截取了大概800张左右的图,这个量级在训练时肯定是不够的,所以我们需要使用数据增强(无非是旋转加噪调量度)来增加我们 ...
- 创建Djongo需要改url的地方:
from django.conf.urls import urlfrom django.contrib import adminfrom app01 import viewsurlpatterns = ...