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. php 图片添加文字水印 以及 图片合成(微信快码传播)

    1.图片添加文字水印: $bigImgPath = 'backgroud.png'; $img = imagecreatefromstring(file_get_contents($bigImgPat ...

  2. [Android Studio 权威教程]断点调试和高级调试

    好了开始写一个简单的调试程序,我们先来一个for循环 ? 1 2 3 4 5 6 7 8 <code class="language-java hljs ">for ( ...

  3. java框架篇---spring AOP 实现原理

    什么是AOP AOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善.OOP引入 ...

  4. java攻城师之路--复习java web之jsp入门_El表达式_JSTL标签库

    JSP 技术掌握:JSP语法 + EL + JSTL 为什么sun推出 JSP技术 ? Servlet 生成网页比较复杂,本身不支持HTML语法,html代码需要通过response输出流输出,JSP ...

  5. css3 keyframes在yuicompressor下压缩问题

    @keyframes proBackAction { 0% { opacity:; } 100% { opacity: .8; } } @keyframes proBackAction { 0{ op ...

  6. 【Android菜鸟学习之路】环境搭建问题-修改AVD Path

    更改avd默认路径

  7. Android 布局之LinearLayout

    Android 布局之LinearLayout 1 LinearLayout简介 LinearLayout是线程布局.它包括2个方向(android:orientation):“水平”(horizon ...

  8. python反转字符串(简单方法)及简单的文件操作示例

    Python反转字符串的最简单方法是用切片: >>> a=' >>> print a[::-1] 654321 切片介绍:切片操作符中的第一个数(冒号之前)表示切片 ...

  9. ok6410 android driver(8)

    In the past, we know how to create and run a simple character device driver on pc, goldfish and ok64 ...

  10. 可以调整gif动画图片尺寸的很实用的php类

    类的使用demo: <?php //http://www.cnblogs.com/roucheng/ require_once "roucheng.php"; $gr = n ...