C# Excel使用NPOI

程序处理excel使用using Microsoft.Office.Interop.Excel方式,运行程序需要电脑安装excel,而且excel版本还需要一样,使用起来不方便。使用NPOI不用电脑安装office.

下载地址:http://npoi.codeplex.com/

下载NPOI 2.2.1 binary package.zip,解压缩里面有Net20和Net40。我使用的Net40,把里面所有的dll添加引用。

读excel

using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System.IO;
 private void ReadPatternExcel(string filePath,int sheetIndex)
        {
            IWorkbook workBook = null;
            ISheet sheet;
            try
            {
                FileInfo fileInfo = new FileInfo(filePath);
                if(fileInfo.Exists)
                {
                    FileStream fs = fileInfo.OpenRead();
                    switch (fileInfo.Extension)
                    {
                        //xls是03,用HSSFWorkbook打开,.xlsx是07或者10用XSSFWorkbook打开
                        case ".xls":
                            workBook = new HSSFWorkbook(fs);
                            break;
                        case ".xlsx":
                            workBook = new XSSFWorkbook(fs);
                            break;
                        default:
                            break;
                    }
                    fs.Close();//关闭文件流
                }

                if(workBook!=null)
                {
                    sheet = workBook.GetSheetAt(sheetIndex);
                    IRow headerRow = sheet.GetRow(0);
                    int colCount = headerRow.LastCellNum;//列数
                    //遍历
                    for(int i=sheet.FirstRowNum;i<=sheet.LastRowNum;i++)
                    {
                        Console.Write("row "+i.ToString()+" ");
                        NPOI.SS.UserModel.IRow row = sheet.GetRow(i);//得到一行
                        for(int j=row.FirstCellNum;j<row.LastCellNum;j++)
                        {
                            string data = row.GetCell(j).ToString();
                            Console.Write(data);
                        }
                        Console.WriteLine();
                    }
                }

            }
            catch(Exception e)
            {
                MessageBox.Show(e.Message.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                workBook = null;
                sheet = null;
            }

        }
时间: 2024-09-28 23:00:12

C# Excel使用NPOI的相关文章

ASP.NET导出Excel(利用NPOI和EPPlus库,无需安装Office)

网上提供了很多Asp.net中操作Excel的方法,其中大部分是调用微软的Office组件,下面提供三个无须安装Office即可从Asp.net输出Excel的方法. 1 简单方法 //下面代码输出的Excel有三列(姓名.年龄.性别)//列之间用\t隔开StringWriter sw = new StringWriter();sw.WriteLine("姓名\t年龄\t性别"); //Excel表格的列标题 sw.WriteLine("张三\t29\t男"); /

Excel读写NPOI

mnesia在频繁操作数据的过程可能会报错:** WARNING ** Mnesia is overloaded: {dump_log, write_threshold},可以看出,mnesia应该是过载了.这个警告在mnesia dump操作会发生这个问题,表类型为disc_only_copies .disc_copies都可能会发生. 如何重现这个问题,例子的场景是多个进程同时在不断地mnesia:dirty_write/2 mnesia过载分析 1.抛出警告是在mnesia 增加dump

ASP.NET 存取EXCEL 使用NPOI相关小技巧

整理NPOI相关小技巧 Technorati 的标签: .Net,NPOI ? 1.删除row & 删除并将下方数据行上移 //EX:删除ROW(8) Sheet.RemoveRow(Sheet.GetRow(8)); //删除行并将下方行上移 //EX:将第8行往上移一行=移除第7行 Sheet.ShiftRows(8, Sheet.LastRowNum, -1); 2.Sheet Copy HSSFSheet newSheet = (HSSFSheet)workbook.CloneSheet

到处到Excel中NPOI

源地址:http://www.cnblogs.com/dreamof/archive/2010/06/02/1750151.html\ 1.NPOI官方网站:http://npoi.codeplex.com/ 可以到此网站上去下载最新的NPOI组件版本 2.NPOI在线学习教程(中文版): http://www.cnblogs.com/tonyqus/archive/2009/04/12/1434209.html 感谢Tony Qu分享出NPOI组件的使用方法 3..NET调用NPOI组件导入导

C#操作Excel之NPOI

最近要开发一个C#操作Excel的小工具,但是装上Office之后又是各种组件冲突. 后来发现了NPOI,觉得非常好用. 这里跟大家分享下, 官网:http://npoi.codeplex.com/downloads/get/872547 下面网站有教程:http://www.cnblogs.com/atao/archive/2009/11/15/1603528.html 教程里有的地方会报错,大家以官网为准.

●导出excel(NPOI)

添加引用 NPOI.dll //需要引用的命名空间 using NPOI.HSSF.UserModel; string path1 = Server.MapPath(@"Muban/TCCheDuiZhang.xls"); //excel模板路径 string filename = Session["Uid"].ToString() + DateTime.Now.ToString("yyyyMMddhhmmssms") + ".xls&

DataTable 导出Excel 之 NPOI

NPOI 强大的地方就是Excel里面90%功能,都能实现.坑爹的是需要引用5个DLL ? 官方例子: static void Main(string[] args) { IWorkbook workbook = new XSSFWorkbook(); ISheet worksheet = workbook.CreateSheet("Sheet1"); ? for (int rownum = 0; rownum < 10000; rownum++) { IRow row = wo

ASP.NET中的Excel操作(NPOI方式)

代码准备: 一:实体准备 代码如下: /// <summary> /// 一个能添加到将要导出到指定行的实体类型规范 /// data:{int StartColIndex ? 0, int ColSpan, object Value, bool Center} /// </summary> public interface IExcelModel { /// <summary> /// 开始列的索引(即使是有合并单元格的情况,也得按未合并单元格时算) /// <

.net excel利用NPOI导入oracle

1.链接数据库 引用System.Data.OracleClient: //数据库链接字符串   Data Source如:192.168.5.153:1521/orcl string linkStr = "User ID=" + name + "; Password=" + password + "; Data Source=" + oraLink; OracleConnection oraCon = new OracleConnection(