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类的更多相关文章

  1. NET npoi帮助类

    nuget添加npoi /// <summary> /// npoi帮助类 /// </summary> public static class NpoiHelper { // ...

  2. NPOI 帮助类

    NPOI 帮助类 代码实现了来自于互联网 using System; using System.Data; using System.IO; using System.Text; using NPOI ...

  3. 转载 NPOI Excel 单元格背景颜色对照表

    NPOI Excel 单元格颜色对照表,在引用了 NPOI.dll 后可通过 ICellStyle 接口的 FillForegroundColor 属性实现 Excel 单元格的背景色设置,FillP ...

  4. NPOI Excel 单元格背景颜色对照表

    NPOI Excel 单元格颜色对照表,在引用了 NPOI.dll 后可通过 ICellStyle 接口的 FillForegroundColor 属性实现 Excel 单元格的背景色设置,FillP ...

  5. 022医疗项目-模块二:药品目录的导入导出-对XSSF导出excel类进行封装

    资源全部来源于传智播客. 好的架构师写的程序,就算给刚入门的新手看,新手一看就知道怎么去用.所以我们要对XSSF导出excel类进行封装.这是架构师的工作,但我们也要知道. 我们写一个封装类: 这个类 ...

  6. <转载>NPOI Excel 单元格背景颜色对照表

    我转载地址:http://www.holdcode.com/web/details/117 NPOI Excel 单元格颜色对照表,在引用了 NPOI.dll 后可通过 ICellStyle 接口的 ...

  7. ASP.NET导出EXCEL类

    最新ASP.NET导出EXCEL类 说明:可以导出ASP.NET页面和DATAGRID(WebControl)数据,可以导出表单头 using System;using System.Data;usi ...

  8. C#利用NPOI导出Excel类(简单版)

    代码: using System.Data; using System.IO; using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; namespac ...

  9. NPOI操作EXCEL 类代码

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using NPOI.SS. ...

随机推荐

  1. 如何在IIS7或IIS7.5中导入导出站点及应用程序池.

    为实现负载平衡,我们可能会使用多个WEB服务器,也就会需要给多个IIS配置同样的站点和应用程序池.那么我们需要一个一个的重新建吗?当然不用,我们只需要一些简单的命令就可以在IIS7(Windows S ...

  2. sqlmap查找SQL注入漏洞入门

    1.安装sqlmap sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞.注意:sqlmap只是用来检测和利用sql注入点的,使用前请先使用扫描工具扫出sql注入点 ...

  3. Python Django 开发 4 ORM

    第三篇最后写了,光知道那些基础的查询在项目中是没有什么卵用的,重点是实体关系映射(ORM),今天学习了,来记录一下,关键词:ForeignKey(多对一).OneToOneField(一对一).Man ...

  4. jQuery---EasyUI小案列

    jQuery EasyUI为提供了大多数UI控件的使用,如:accordion,combobox,menu,dialog,tabs,validatebox,datagrid,window,tree等等 ...

  5. 【转】Oracle RAC 环境下的连接管理

    文章转自:http://www.oracle.com/technetwork/cn/articles/database-performance/oracle-rac-connection-mgmt-1 ...

  6. wireshark如何抓取本机包

    在进行通信开发的过程中,我们往往会把本机既作为客户端又作为服务器端来调试代码,使得本机自己和自己通信.但是wireshark此时是无法抓取到数据包的,需要通过简单的设置才可以. 具体方法如下: 方法一 ...

  7. 有关web 语义的文章总结

         A web of data that can be processed directly and indirectly by machines.  --Tim Berners-Lee web ...

  8. MySQL不能插入中文字符及中文字符乱码问题

    MySQL的默认编码是Latin1,不支持中文,要支持中午需要把数据库的默认编码修改为gbk或者utf8.在安装后MySQL之后,它的配置文件不是很给力,不知道你们的是不是,反正我的是! 开始插入中文 ...

  9. 2014 网选 5014 Number Sequence(异或)

    /* 题意:a, b两个序列,规定由[0, n]区间的数! 求 a[i] ^ b[i] 的和最大! 思路:如果数字 n的二进制有x位, 那么一定存在一个数字m,使得n^m的所有二进制位 都是1,也就是 ...

  10. [转载]浅谈组策略设置IE受信任站点

    在企业中,通常会有一些业务系统,要求必须加入到客户端IE受信任站点,才能完全正常运行访问,在没有域的情况下,可能要通过管理员手动设置,或者通过其它网络推送方法来设置. 有了域之后,这项工作就可以很好的 ...