npoi把xlsx文件转为html,C# NPOI 导入与导出Excel文档 兼容xlsx, xls(xf13中已经引用了xlsx的npoi)...
这里使用的NPOI版本为: 2.1.3.1
版本内包含.Net 2.0 与.Net 4.0
.Net 4.0中包含文件
使用时需引用需要引用所有5个dll
使用到的引用
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
还有经过自己整理的导入导出Excel代码:
///
/// Excel导入成Datable
///
/// 导入路径(包含文件名与扩展名)
///
public static DataTable ExcelToTable(string file)
{
DataTable dt = new DataTable();
IWorkbook workbook;
string fileExt = Path.GetExtension(file).ToLower();
using (FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read))
{
//XSSFWorkbook 适用XLSX格式,HSSFWorkbook 适用XLS格式
if (fileExt == ".xlsx") { workbook = new XSSFWorkbook(fs); } else if (fileExt == ".xls") { workbook = new HSSFWorkbook(fs); } else { workbook = null; }
if (workbook == null) { return null; }
ISheet sheet = workbook.GetSheetAt(0);
//表头
IRow header = sheet.GetRow(sheet.FirstRowNum);
List columns = new List();
for (int i = 0; i < header.LastCellNum; i++)
{
object obj = GetValueType(header.GetCell(i));
if (obj == null || obj.ToString() == string.Empty)
{
dt.Columns.Add(new DataColumn("Columns" + i.ToString()));
}
else
dt.Columns.Add(new DataColumn(obj.ToString()));
columns.Add(i);
}
//数据
for (int i = sheet.FirstRowNum + 1; i <= sheet.LastRowNum; i++)
{
DataRow dr = dt.NewRow();
bool hasValue = false;
foreach (int j in columns)
{
dr[j] = GetValueType(sheet.GetRow(i).GetCell(j));
if (dr[j] != null && dr[j].ToString() != string.Empty)
{
hasValue = true;
}
}
if (hasValue)
{
dt.Rows.Add(dr);
}
}
}
return dt;
}
///
/// Datable导出成Excel
///
///
/// 导出路径(包括文件名与扩展名)
public static void TableToExcel(DataTable dt, string file)
{
IWorkbook workbook;
string fileExt = Path.GetExtension(file).ToLower();
if (fileExt == ".xlsx") { workbook = new XSSFWorkbook(); } else if (fileExt == ".xls") { workbook = new HSSFWorkbook(); } else { workbook = null; }
if (workbook == null) { return; }
ISheet sheet = string.IsNullOrEmpty(dt.TableName) ? workbook.CreateSheet("Sheet1") : workbook.CreateSheet(dt.TableName);
//表头
IRow row = sheet.CreateRow(0);
for (int i = 0; i < dt.Columns.Count; i++)
{
ICell cell = row.CreateCell(i);
cell.SetCellValue(dt.Columns[i].ColumnName);
}
//数据
for (int i = 0; i < dt.Rows.Count; i++)
{
IRow row1 = sheet.CreateRow(i + 1);
for (int j = 0; j < dt.Columns.Count; j++)
{
ICell cell = row1.CreateCell(j);
cell.SetCellValue(dt.Rows[i][j].ToString());
}
}
//转为字节数组
MemoryStream stream = new MemoryStream();
workbook.Write(stream);
var buf = stream.ToArray();
//保存为Excel文件
using (FileStream fs = new FileStream(file, FileMode.Create, FileAccess.Write))
{
fs.Write(buf, 0, buf.Length);
fs.Flush();
}
}
///
/// 获取单元格类型
///
///
///
private static object GetValueType(ICell cell)
{
if (cell == null)
return null;
switch (cell.CellType)
{
case CellType.Blank: //BLANK:
return null;
case CellType.Boolean: //BOOLEAN:
return cell.BooleanCellValue;
case CellType.Numeric: //NUMERIC:
return cell.NumericCellValue;
case CellType.String: //STRING:
return cell.StringCellValue;
case CellType.Error: //ERROR:
return cell.ErrorCellValue;
case CellType.Formula: //FORMULA:
default:
return "=" + cell.CellFormula;
}
}
C# NPOI 导入与导出Excel文档 兼容xlsx, xls
之前写了个小程序,导出一些数据成Excel,程序使用的是Microsoft.Office.Interop.Excel类来操作Excel. 在本机测试的时候都好好的,但是将生成文件放到其他电脑上却怎样也 ...
[转]C# NPOI 导入与导出Excel文档 兼容xlsx, xls
本文转自:https://www.cnblogs.com/lazyneal/p/6148912.html 参考:http://www.cnblogs.com/restran/p/3889479.htm ...
struts2中利用POI导出Excel文档并下载
1.项目组负责人让我实现这个接口,因为以前做过类似的,中间并没有遇到什么太困难的事情.其他不说,先上代码: package com.tydic.eshop.action.feedback; impor ...
转:ASP.NET MVC 将IList<;T>;导出Excel文档的泛型类
/// /// 提供将泛型集合数据导出Excel文档. /// ///
npoi把xlsx文件转为html,C# NPOI 导入与导出Excel文档 兼容xlsx, xls(xf13中已经引用了xlsx的npoi)...相关推荐
- C# NPOI 导入与导出Excel文档 兼容xlsx, xls
这里使用的NPOI版本为: 2.1.3.1 官方下载地址: http://npoi.codeplex.com/releases 版本内包含.Net 2.0 与.Net 4.0 .Net 4.0中包含文 ...
- 腾讯文档导出Excel文档显示‘文件已损坏,无法打开‘解决方法
转载请标明出处:https://blog.csdn.net/cms18374672699/article/details/112276613 本文出自DistressRroke _chen的博客 相信 ...
- Python 批量将.xlsx文件转为.xls文件
工作需要,需要向xls文件里写入数据.由于xlrd\xlwt写入的数据不带格式,只好把xls模板先转为xlsx格式,用openpyxl批量写入完后再批量转为xls. 百度找的转换实例,实际应用时生成的 ...
- 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续2篇-模板导出综合示例)...
自ExcelUtility类推出以来,经过项目中的实际使用与不断完善,现在又做了许多的优化并增加了许多的功能,本篇不再讲述原理,直接贴出示例代码以及相关的模板.结果图,以便大家快速掌握,另外这些示例说 ...
- npoi html导出word,NPOI插件生成导出word文档
由于以前没有接触NPOI过这个插件,因此几乎都是本身一边百度摸索一边学习.html 这个插件对于Excel的数据导入和导出,能够说是很方便了,前端 可是对于导出word文档,能够说是不多的,百度了不少 ...
- python使用xlrd读取xlsx文件_$ 用python处理Excel文档(1)——用xlrd模块读取xls/xlsx文档...
本文主要介绍xlrd模块读取Excel文档的基本用法,并以一个GDP数据的文档为例来进行操作. 1. 准备工作: 1. 安装xlrd:pip install xlrd 2. 准备数据集:从网上找到的1 ...
- 如何批量将 Excel 文档转为 Svg 格式
概要:SVG 是一种图形文件格式,它的全称可缩放的矢量图形,这种图形格式跟我们平时拍照的图片格式是有不一样的,我们平时拍的照片,如果放大到一定的程度都会变得模糊不清.但是 SVG 这种矢量图形格式是可 ...
- Python实现谷歌翻译爬虫,翻译PDF,翻译Excel,支持excel文档打开翻译,支持xlsx,xlsm等格式。
前言: 这两个Python脚本是我在实习期间完成的,具体来自于小组主管的两个小需求.做完之后感觉还是挺有收获的. 实现谷歌翻译,首先需要将我们写的Python脚本还有需要翻译的文件放到谷歌浏览器的安装 ...
- 如何批量将 Excel 文档转为 Csv 格式
概要:CSV 称为逗号分隔值,其文件以纯文本形式存储表格数据(数字和文本),而熟悉 Excel 的小伙伴应该也知道 Excel 也是存储表格数据,只不过 Excel 不仅支持文本,还支持图片.视频等多 ...
最新文章
- [BZOJ 1012] 最大数maxnumber
- 从直播答题看背后的移动音视频开发
- 012.Adding a New Field --【添加一个新字段】
- php引用类,thinkphp引用类的使用
- java date 实例_Java Date 和 Calendar 实例
- org.apache.hadoop.security.AccessControlException: Permission denied: user=anonymous, access=EXECUTE
- java读取文件夹,如何从Java读取文件夹中的所有文件?
- jquery用ajax,超简单的jquery的AJAX用法
- python处理音频的库_Python中音频处理库pydub的使用教程
- 计算机pe教程,黑鲨装机大师PE界面使用教程
- CubeMX编写风力摆控制系统[HAL库]
- 幸运抽奖java_java10幸运抽奖
- 时钟芯片DS1302的原理及使用
- ajax聊天室创建群聊,js+node.js+socket.io实现聊天功能(私聊,创建群聊)
- SAP OOALV-SD模块实战开发案例(增删改查)
- RQ配置使用Redis Cluster
- java虎胆龙威_格斗之王3虎胆龙威
- 计算机大赛获奖作品动画,全国xx杯说课大赛计算机类一等奖作品:《遮罩动画》说课课件...
- 微信小程序获取用户运动步数后端返回-41003
- 《用户至上:用户研究方法与实践(原书第2版)》一导读
热门文章
- 杰理之测试盒对耳串口升级功能【篇】
- 锐龙intel服务器性能,CPU选购 详解锐龙和英特尔性能对比
- 好用的电脑录屏工具有哪些?电脑好用的录屏工具
- Python pandas.DataFrame.max函数方法的使用
- mac sketch 导出 html,Mac sketch与前端的无缝对接
- java电费计收_12月起,电费每月一缴,记得及时缴费哦!
- 爬虫与反爬虫的攻防博弈
- [不明觉厉] 下一个排列
- 5月31日服务器维护更新公告,绝地求生5月31日更新内容
- 二叉树遍历算法详解(递归法+非递归法)