NPOI Excel类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NPOI.HSSF.UserModel;
using NPOI.HPSF;
using NPOI.POIFS.FileSystem;
using System.IO;
using NPOI.SS.Util;
namespace ExcelPlay
{
public class Excel
{
public HSSFWorkbook hssfwork; //工作簿
/// <summary>
/// 初始化Excel
/// </summary>
public Excel()
{
hssfwork = new HSSFWorkbook(); //创建工作簿
}
/// <summary>
/// 初始化打开Excel
/// </summary>
/// <param name="path"></param>
public Excel(string path)
{
FileStream file = new FileStream(path, FileMode.Open);
hssfwork = new HSSFWorkbook(file); //创建工作簿
}
/// <summary>
/// 创建工作表
/// </summary>
/// <param name="ShellName"></param>
public NPOI.SS.UserModel.ISheet CreateShell(string ShellName)
{
NPOI.SS.UserModel.ISheet sheet; //工作表
sheet = hssfwork.CreateSheet(ShellName);
return sheet;
}
/// <summary>
/// 写主题公司信息
/// </summary>
/// <param name="Document"></param>
/// <param name="Summary"></param>
public void WriteInfomation(string Document, string Summary)
{
DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation(); //创建summaryinformation文件 公司名
dsi.Company = "mo";
SummaryInformation si = PropertySetFactory.CreateSummaryInformation(); //创建summaryinformation 主题
si.Subject = "Example";
hssfwork.DocumentSummaryInformation = dsi; //创建好的传递给工作簿
hssfwork.SummaryInformation = si;
}
/// <summary>
/// 获取工作表
/// </summary>
/// <param name="LstName"></param>
/// <returns></returns>
public List<string> GetSheet(List<string> LstName)
{
for (int i = 0; i < hssfwork.NumberOfSheets; i++)
{
LstName.Add(hssfwork.GetSheetName(i));
}
return LstName;
}
/// <summary>
/// 储存工作簿
/// </summary>
/// <param name ="path"></param>
public void SaveWorkbook(string path)
{
FileStream file = new FileStream(path, FileMode.Create);
hssfwork.Write(file);
file.Close(); // 写入输入流文件
}
/// <summary>
/// 写入数据
/// </summary>
/// <param name ="Row"></param>
/// <param name ="Column"></param>
/// <param name ="data"></param>
/// <param name ="sheet"></param>
public void WriteData(int Row, int Column, string data, NPOI.SS.UserModel.ISheet sheet)
{
sheet.CreateRow(Row).CreateCell(Column).SetCellValue(data);
}
/// <summary>
/// 写入数据
/// </summary>
/// <param name="Row"></param>
/// <param name="Column"></param>
/// <param name="data"></param>
/// <param name="sheet"></param>
public void WriteData(int Row, int Column, double data, NPOI.SS.UserModel.ISheet sheet)
{
sheet.CreateRow(Row).CreateCell(Column).SetCellValue(data);
}
/// <summary>
/// 写入数据
/// </summary>
/// <param name="Row"></param>
/// <param name="Column"></param>
/// <param name="data"></param>
/// <param name="sheet"></param>
public void WriteData(int Row, int Column, bool data, NPOI.SS.UserModel.ISheet sheet)
{
sheet.CreateRow(Row).CreateCell(Column).SetCellValue(data);
}
/// <summary>
/// 写入数据
/// </summary>
/// <param name="Row"></param>
/// <param name="Column"></param>
/// <param name="data"></param>
/// <param name="sheet"></param>
/// <param name="Flag"></param>
public void WriteData(int Row, int Column, DateTime data, NPOI.SS.UserModel.ISheet sheet,string Flag)
{
sheet.CreateRow(Row).CreateCell(Column).SetCellValue(data);
setFormat(Row, Column, Flag, sheet);
}
/// <summary>
/// 写入数据
/// </summary>
/// <param name="Row"></param>
/// <param name="data"></param>
/// <param name="sheet"></param>
public void WriteData(int Row,string[] data,NPOI.SS.UserModel.ISheet sheet)
{
int Column = 0;
foreach (string str in data)
{
if (Column == 0)
{
sheet.CreateRow(Row).CreateCell(Column).SetCellValue(str);
}
else
{
sheet.GetRow(Row).CreateCell(Column).SetCellValue(str);
}
Column++;
}
}
/// <summary>
/// 写入数据
/// </summary>
/// <param name="Row"></param>
/// <param name="data"></param>
/// <param name="sheet"></param>
public void WriteData(int Row, double[] data, NPOI.SS.UserModel.ISheet sheet)
{
int Column = 0;
foreach (double str in data)
{
if (Column == 0)
{
sheet.CreateRow(Row).CreateCell(Column).SetCellValue(str);
}
else
{
sheet.GetRow(Row).CreateCell(Column).SetCellValue(str);
}
Column++;
}
}
/// <summary>
/// 写入数据
/// </summary>
/// <param name="Row"></param>
/// <param name="data"></param>
/// <param name="sheet"></param>
public void WriteData(int Row, bool[] data, NPOI.SS.UserModel.ISheet sheet)
{
int Column = 0;
foreach (bool str in data)
{
if (Column == 0)
{
sheet.CreateRow(Row).CreateCell(Column).SetCellValue(str);
}
else
{
sheet.GetRow(Row).CreateCell(Column).SetCellValue(str);
}
Column++;
}
}
/// <summary>
/// 写入数据
/// </summary>
/// <param name="Row"></param>
/// <param name="data"></param>
/// <param name="sheet"></param>
/// <param name="Flag"></param>
public void WriteData(int Row, DateTime[] data, NPOI.SS.UserModel.ISheet sheet,string Flag)
{
int Column = 0;
foreach (DateTime str in data)
{
if (Column == 0)
{
sheet.CreateRow(Row).CreateCell(Column).SetCellValue(str);
}
else
{
sheet.GetRow(Row).CreateCell(Column).SetCellValue(str);
}
setFormat(Row, Column, Flag, sheet);
Column++;
}
}
/// <summary>
/// 写入数据
/// </summary>
/// <param name="diff"></param>
/// <param name="Column"></param>
/// <param name="data"></param>
/// <param name="sheet"></param>
public void WriteData(bool diff,int Column, string[] data, NPOI.SS.UserModel.ISheet sheet)
{
int Row = 0;
foreach (string str in data)
{
if (diff)
{
sheet.CreateRow(Row).CreateCell(Column).SetCellValue(str);
}
else
{
sheet.GetRow(Row).CreateCell(Column).SetCellValue(str);
}
Row++;
}
}
/// <summary>
/// 写入数据
/// </summary>
/// <param name="diff"></param>
/// <param name="Column"></param>
/// <param name="data"></param>
/// <param name="sheet"></param>
public void WriteData(bool diff,int Column, double[] data, NPOI.SS.UserModel.ISheet sheet)
{
int Row = 0;
foreach (double str in data)
{
if (diff)
{
sheet.CreateRow(Row).CreateCell(Column).SetCellValue(str);
}
else
{
sheet.GetRow(Row).CreateCell(Column).SetCellValue(str);
}
Row++;
}
}
/// <summary>
/// 写入数据
/// </summary>
/// <param name="diff"></param>
/// <param name="Column"></param>
/// <param name="data"></param>
/// <param name="sheet"></param>
public void WriteData(bool diff, int Column, bool[] data, NPOI.SS.UserModel.ISheet sheet)
{
int Row = 0;
foreach (bool str in data)
{
if (diff)
{
sheet.CreateRow(Row).CreateCell(Column).SetCellValue(str);
}
else
{
sheet.GetRow(Row).CreateCell(Column).SetCellValue(str);
}
Row++;
}
}
/// <summary>
/// 写入数据
/// </summary>
/// <param name="diff"></param>
/// <param name="Column"></param>
/// <param name="data"></param>
/// <param name="sheet"></param>
/// <param name="Flag"></param>
public void WriteData(bool diff, int Column, DateTime[] data, NPOI.SS.UserModel.ISheet sheet,string Flag)
{
int Row = 0;
foreach (DateTime str in data)
{
if (diff)
{
sheet.CreateRow(Row).CreateCell(Column).SetCellValue(str);
}
else
{
sheet.GetRow(Row).CreateCell(Column).SetCellValue(str);
}
Row++;
}
}
/// <summary>
/// 写入数据
/// </summary>
/// <param name="Row"></param>
/// <param name="Column"></param>
/// <param name="data"></param>
/// <param name="sheet"></param>
public void WriteData(int Row, int Column, string[,] data, NPOI.SS.UserModel.ISheet sheet)
{
int lengthRow = data.GetLength(0);
int lengthColumn = data.GetLength(1);
for (int n = 0; n < lengthRow; n++)
{
for (int m = 0; m < lengthColumn; m++)
{
if (m == 0)
{
sheet.CreateRow(Row + n).CreateCell(Column + m).SetCellValue(data[n, m]);
}
else
{
sheet.GetRow(Row + n).CreateCell(Column + m).SetCellValue(data[n, m]);
}
}
}
}
/// <summary>
/// 写入数据
/// </summary>
/// <param name="Row"></param>
/// <param name="Column"></param>
/// <param name="data"></param>
/// <param name="sheet"></param>
public void WriteData(int Row, int Column, double[,] data, NPOI.SS.UserModel.ISheet sheet)
{
int lengthRow = data.GetLength(0);
int lengthColumn = data.GetLength(1);
for (int n = 0; n < lengthRow; n++)
{
for (int m = 0; m < lengthColumn; m++)
{
if (m == 0)
{
sheet.CreateRow(Row + n).CreateCell(Column + m).SetCellValue(data[n, m]);
}
else
{
sheet.GetRow(Row + n).CreateCell(Column + m).SetCellValue(data[n, m]);
}
}
}
}
/// <summary>
/// 写入数据
/// </summary>
/// <param name="Row"></param>
/// <param name="Column"></param>
/// <param name="data"></param>
/// <param name="sheet"></param>
public void WriteData(int Row, int Column, bool[,] data, NPOI.SS.UserModel.ISheet sheet)
{
int lengthRow = data.GetLength(0);
int lengthColumn = data.GetLength(1);
for (int n = 0; n < lengthRow; n++)
{
for (int m = 0; m < lengthColumn; m++)
{
if (m == 0)
{
sheet.CreateRow(Row + n).CreateCell(Column + m).SetCellValue(data[n, m]);
}
else
{
sheet.GetRow(Row + n).CreateCell(Column + m).SetCellValue(data[n, m]);
}
}
}
}
/// <summary>
/// 写入数据
/// </summary>
/// <param name="Row"></param>
/// <param name="Column"></param>
/// <param name="data"></param>
/// <param name="sheet"></param>
/// <param name="Flag"></param>
public void WriteData(int Row, int Column, DateTime[,] data, NPOI.SS.UserModel.ISheet sheet,string Flag)
{
int lengthRow = data.GetLength(0);
int lengthColumn = data.GetLength(1);
for (int n = 0; n < lengthRow; n++)
{
for (int m = 0; m < lengthColumn; m++)
{
if (m == 0)
{
sheet.CreateRow(Row + n).CreateCell(Column + m).SetCellValue(data[n, m]);
}
else
{
sheet.GetRow(Row + n).CreateCell(Column + m).SetCellValue(data[n, m]);
}
setFormat(Row, Column, Flag, sheet);
}
}
}
/// <summary>
/// 写入标签
/// </summary>
/// <param name="boll"></param>
/// <param name="Row"></param>
/// <param name="Column"></param>
/// <param name="str"></param>
/// <param name="author"></param>
/// <param name="sheet"></param>
/// <param name="dx1"></param>
/// <param name="dy1"></param>
/// <param name="dx2"></param>
/// <param name="dy2"></param>
/// <param name="row1"></param>
/// <param name="col1"></param>
/// <param name="row2"></param>
/// <param name="col2"></param>
public void WriteComment(bool boll,int Row, int Column, string str, string author, NPOI.SS.UserModel.ISheet sheet, int dx1, int dy1, int dx2, int dy2, int row1, int col1, int row2, int col2)
{
NPOI.SS.UserModel.IDrawing drawing = sheet.CreateDrawingPatriarch();
NPOI.SS.UserModel.IComment comment = drawing.CreateCellComment(new HSSFClientAnchor(dx1,dy1,dx2,dy2,col1,row1,col2,row2));
comment.String = new HSSFRichTextString(str);
comment.Author = author;
if (boll)
{
comment.Visible = true;
}
NPOI.SS.UserModel.ICell cell = sheet.CreateRow(Row).CreateCell(Column);
cell.CellComment = comment;
}
/// <summary>
/// 设置格式
/// </summary>
/// <param name="Row"></param>
/// <param name="Column"></param>
/// <param name="Format"></param>
/// <param name="sheet"></param>
public void setFormat(int Row, int Column, string Format, NPOI.SS.UserModel.ISheet sheet)
{
NPOI.SS.UserModel.ICell cell = sheet.GetRow(Row).GetCell(Column);
NPOI.SS.UserModel.ICellStyle cellStyle = hssfwork.CreateCellStyle();
NPOI.SS.UserModel.IDataFormat format = hssfwork.CreateDataFormat();
cellStyle.DataFormat = format.GetFormat(Format);
cell.CellStyle = cellStyle;
}
/// <summary>
/// 设置格式
/// </summary>
/// <param name="boll"></param>
/// <param name="Row"></param>
/// <param name="Column"></param>
/// <param name="Format"></param>
/// <param name="sheet"></param>
public void setFormat(bool boll, int Row, int Column, string Format, NPOI.SS.UserModel.ISheet sheet)
{
NPOI.SS.UserModel.ICell cell = sheet.GetRow(Row).GetCell(Column);
NPOI.SS.UserModel.ICellStyle cellStyle = hssfwork.CreateCellStyle();
cellStyle.DataFormat = HSSFDataFormat.GetBuiltinFormat(Format); //内嵌写入
cell.CellStyle = cellStyle;
}
/// <summary>
/// 合并区域
/// </summary>
/// <param name="Row"></param>
/// <param name="Column"></param>
/// <param name="sheet"></param>
/// <param name="FirstRow"></param>
/// <param name="FirstColumn"></param>
/// <param name="LastRow"></param>
/// <param name="LastColumn"></param>
public void MargeRegion(int Row,int Column ,NPOI.SS.UserModel.ISheet sheet,int FirstRow,int FirstColumn,int LastRow,int LastColumn)
{
NPOI.SS.UserModel.ICell cell = sheet.CreateRow(Row).CreateCell(Column);
sheet.AddMergedRegion(new CellRangeAddress(FirstRow, LastRow, FirstColumn, LastColumn));
}
public object ReadData(int Row,int Column,NPOI.SS.UserModel.ISheet sheet,int checkd)
{
object data = null;
switch (checkd)
{
case 0:
data = sheet.GetRow(Row).GetCell(Column).StringCellValue;
break;
case 1:
data = sheet.GetRow(Row).GetCell(Column).DateCellValue;
break;
case 2:
data = sheet.GetRow(Row).GetCell(Column).NumericCellValue;
break;
case 3:
data = sheet.GetRow(Row).GetCell(Column).BooleanCellValue;
break;
}
return data;
//short num = sheet.GetRow(2).LastCellNum;
}
public List<List<string>> ReadData(NPOI.SS.UserModel.ISheet sheet)
{
List<string> data = new List<string>();
List<List<string>> listdata = new List<List<string>>();
int Rownum = sheet.PhysicalNumberOfRows;
for (int i = 0; i < Rownum; i++)
{
int Column = sheet.GetRow(i).PhysicalNumberOfCells;
for (int m = 0; m < Column; m++)
{
data.Add(sheet.GetRow(i).GetCell(m).StringCellValue);
}
listdata.Add(data);
data = new List<string>();
}
return listdata;
}
}
}
NPOI Excel类的更多相关文章
- NET npoi帮助类
nuget添加npoi /// <summary> /// npoi帮助类 /// </summary> public static class NpoiHelper { // ...
- NPOI 帮助类
NPOI 帮助类 代码实现了来自于互联网 using System; using System.Data; using System.IO; using System.Text; using NPOI ...
- 转载 NPOI Excel 单元格背景颜色对照表
NPOI Excel 单元格颜色对照表,在引用了 NPOI.dll 后可通过 ICellStyle 接口的 FillForegroundColor 属性实现 Excel 单元格的背景色设置,FillP ...
- NPOI Excel 单元格背景颜色对照表
NPOI Excel 单元格颜色对照表,在引用了 NPOI.dll 后可通过 ICellStyle 接口的 FillForegroundColor 属性实现 Excel 单元格的背景色设置,FillP ...
- 022医疗项目-模块二:药品目录的导入导出-对XSSF导出excel类进行封装
资源全部来源于传智播客. 好的架构师写的程序,就算给刚入门的新手看,新手一看就知道怎么去用.所以我们要对XSSF导出excel类进行封装.这是架构师的工作,但我们也要知道. 我们写一个封装类: 这个类 ...
- <转载>NPOI Excel 单元格背景颜色对照表
我转载地址:http://www.holdcode.com/web/details/117 NPOI Excel 单元格颜色对照表,在引用了 NPOI.dll 后可通过 ICellStyle 接口的 ...
- ASP.NET导出EXCEL类
最新ASP.NET导出EXCEL类 说明:可以导出ASP.NET页面和DATAGRID(WebControl)数据,可以导出表单头 using System;using System.Data;usi ...
- C#利用NPOI导出Excel类(简单版)
代码: using System.Data; using System.IO; using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; namespac ...
- NPOI操作EXCEL 类代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; using NPOI.SS. ...
随机推荐
- windows下配置nginx+php
[转] http://www.cnblogs.com/fengyuqing/p/php_nginx.html 1.首先需要准备的应用程序包. nginx:nginx/Windows-1.0.4 php ...
- Approvals for EBS 1.4 Now Available
If you haven't been following the excellent Workflow blog, you might have missed the announcement ab ...
- Android不规则点击区域详解
Android不规则点击区域详解 摘要 今天要和大家分享的是Android不规则点击区域,准确说是在视觉上不规则的图像点击响应区域分发. 其实这个问题比较简单,对于很多人来说根本不值得做为一篇博文写出 ...
- WCF安全3-Transport与Message安全模式
概述: WCF的安全传输主要涉及认证.消息一致性和机密性三个主题.WCF采用两种不同的机制来解决这三个涉及传输安全的问题,一般将它们成为不同的安全模式,即Transport安全模式和Message安全 ...
- ruby -- 进阶学习(十七)应用代码优化
ROR开发,代码优化的方法下面这两项是比较重要的: link_to Rails的link_to是非常慢的,它的代码实现过于复杂,特别是Rails1.2引入了REST以后,大量的命名路由被使用,这些命 ...
- Linux - Shell脚本调试方法
Shell脚本调试选项 Shell本身提供一些调试方法选项: -n,读一遍脚本中的命令但不执行,用于检查脚本中的语法错误. -v,一边执行脚本,一边将执行过的脚本命令打印到标准输出. -x,提供跟踪执 ...
- Sequence.js - 适合电子商务网站的图片滑块
Sequence.js 是一个非常现代的图片滑动效果,特别适合电子商务网站或者企业产品展示功能.带有图片缩率图,能够呈现全屏图片浏览效果.结合 CSS3 Transition 实现响应式的滑块效果. ...
- 结对编程之Fault、Error、Failure
1.结对说明 结对对象:刘世麟 博客地址:http://www.cnblogs.com/liushilin/ 双方贡献:1:1 2.题目要求 构造程序,分别是: •不能触发Faul ...
- Direct3D11学习:(七)绘图基础——彩色立方体的绘制
转载请注明出处:http://www.cnblogs.com/Ray1024 一.概述 在前面的几篇文章中,我们详细介绍了Direct3D渲染所需要的数学基础和渲染管道理论知识.从这篇文章开始,我们就 ...
- Android学习笔记之DocumentBuilder的使用....
PS:当你的才华还撑不起你的野心时,那你需要静下心来学习..... 学习内容: 1.从服务器上获取XML文档... 2.解析XML文档中的内容... XML文件想必大家都非常的熟悉,可扩展的标记语 ...