C#读写Excel表格文件NPOI方式无需安装office .xls后缀没问题

  /// <summary>
        /// 读Excel
        /// </summary>
        /// <param name="fileName"></param>
        /// <returns></returns>
        public static DataTable getexcel(String fileName)
        {
            DataTable dt = new DataTable();
            IWorkbook workbook = null; //新建IWorkbook对象
            FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
            if (fileName.IndexOf(".xlsx") > 0) // 2007版本
            {
                workbook = new XSSFWorkbook(fileStream); //xlsx数据读入workbook
            }
            else if (fileName.IndexOf(".xls") > 0) // 2003版本
            {
                workbook = new HSSFWorkbook(fileStream); //xls数据读入workbook
            }
            ISheet sheet = workbook.GetSheetAt(0); //获取第一个工作表
            IRow row;// = sheet.GetRow(0); //新建当前工作表行数据
            // MessageBox.Show(sheet.LastRowNum.ToString());
            row = sheet.GetRow(0); //row读入头部
            if (row != null)
            {
                for (int m = 0; m < row.LastCellNum; m++) //表头
                {
                    string cellValue = row.GetCell(m).ToString(); //获取i行j列数据
                    Console.WriteLine(cellValue);
                    dt.Columns.Add(cellValue);
                }
            }
            for (int i = 1; i <= sheet.LastRowNum; i++) //对工作表每一行
            {
                System.Data.DataRow dr = dt.NewRow();
                row = sheet.GetRow(i); //row读入第i行数据
                if (row != null)
                {
                    for (int j = 0; j < row.LastCellNum; j++) //对工作表每一列
                    {
                        string cellValue = row.GetCell(j).ToString(); //获取i行j列数据
                        Console.WriteLine(cellValue);
                        dr[j] = cellValue;
                    }
                }
                dt.Rows.Add(dr);
            }
            Console.ReadLine();
            fileStream.Close();
            return dt;
        }

  

        /// <summary>
        /// 将datatable对象保存为Excel文件
        /// 提供Excel保存路径及datatable数据对象,成功返回真,失败返回假。
        /// </summary>
        /// <param name="path"></param>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static bool DataTableToExcel(String path, DataTable dt)
        {
            bool result = false;
            IWorkbook workbook = null;
            FileStream fs = null;
            IRow row = null;
            ISheet sheet = null;
            ICell cell = null;
            try
            {
                if (dt != null && dt.Rows.Count > 0)
                {
                    workbook = new HSSFWorkbook();
                    sheet = workbook.CreateSheet("Sheet0");//创建一个名称为Sheet0的表
                    int rowCount = dt.Rows.Count;//行数
                    int columnCount = dt.Columns.Count;//列数

                    //设置列头
                    row = sheet.CreateRow(0);//excel第一行设为列头
                    for (int c = 0; c < columnCount; c++)
                    {
                        cell = row.CreateCell(c);
                        cell.SetCellValue(dt.Columns[c].ColumnName);
                    }

                    //设置每行每列的单元格,
                    for (int i = 0; i < rowCount; i++)
                    {
                        row = sheet.CreateRow(i + 1);
                        for (int j = 0; j < columnCount; j++)
                        {
                            cell = row.CreateCell(j);//excel第二行开始写入数据
                            cell.SetCellValue(dt.Rows[i][j].ToString());
                        }
                    }
                    using (fs = File.OpenWrite(path))
                    {
                        workbook.Write(fs);//向打开的这个xls文件中写入数据
                        result = true;
                    }
                }
                return result;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                if (fs != null)
                {
                    fs.Close();
                }
                return false;
            }
        }

  添加引用到你的工程中,并使用using字段进行引用。

报错:未能加载文件或程序集“ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf116

解决方案:删除所有引用的NPOI相关的dll,直接右键工程名称,点击“管理NuGet程序包”,搜索NPOI,然后安装,重新编译,调试

原文地址:https://www.cnblogs.com/Hooper_he/p/9691289.html

时间: 2024-10-20 14:03:56

C#读写Excel表格文件NPOI方式无需安装office .xls后缀没问题的相关文章

php中读写excel表格文件示例。

测试环境:php5.6.24.这块没啥兼容问题. 需要更多栗子,请看PHPExcel的examples.还是蛮强大的. 读取excel文件. 第一步.下载开源的PHPExcel的类库文件,官方网站是http://www.codeplex.com/PHPExcel.里面也有很多示例包. 第二步.读取的基本代码示例: <?php require_once 'Classes/PHPExcel.php'; require_once 'Classes/PHPExcel/IOFactory.php'; re

excel表格文件如何转为pdf

我们在日常编辑表格中,最擅长制作的应该是excel表格,但常常很多时候给别人发送excel文件的时候需要转换成pdf格式,这可以给人专业的感觉.但很多刚刚接触的朋友会有疑问,excel表格文件如何转为pdf?今天小编就来教下大家怎么将excel表格文件转为pdf?       其实excel表格文件转为pdf并不是什么难事.只要大家找对软件就不是困难了.下面是excel表格文件转为pdf的详细步骤,不会的跟着我一起操作吧! 1.打开浏览器进入百度首页,输入"迅捷PDF转换器",在显示的

【PHP】PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数)

[PHP]PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数) 前言 由于业务需要,我们需要从业务中汇总数据,并生成Excel文件. 思路是这样的 PHP要导出Excel表格文件->找一个好用的第三方库吧->在Composer的Packages里找一个吧->PHPExcel这么多收藏,就它了! PHPExcel 概述 PHPExcel is a library written in pure PHP and providing a set of classes th

NPOI读写Excel表格、Word文档

NPOI是从POI移植过来的.NET版本,专门对Word.Excel进行读写操作的一个开源项目 下面就试着怎么用我们的C#来进行读写操作,我现在用的Office版本是2016 我们首先通过Nuget把NPOI引入到我们的项目中 1.读取Excel表格 using(FileStream fs=new FileStream(@"C:\Users\BIDIANQING\Desktop\1.xlsx", FileMode.Open,FileAccess.Read)) { XSSFWorkboo

Python读写excel表格的方法

目的:实现用python做excel的读取.新增.修改操作. 环境:ubuntu 16.04  Python 3.5.2 用python读写文档,一般是操作txt文件或者可以用记事本打开的文件,因为这个操作很直接,不需要导入其他模块,但如果想要对excel表格进行操作,就需要导入其他模块,包括:xlrd(读取),xlwt(写入),xlutils(复制),一般是这三个模块,且需要另外下载,http://pypi.python.org/pypi/模块名. 表格的读取: 读取只需要导入xlrd模块:

C#通过OleDb读写excel表格几个要点

1,OleDbConnection 的连接字符串: 0ffice 97-2003 : strConnection = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR={1};IMEX={2:D}\";", ExcelFilePath, HDR, IMEX); //HDR=No 表示ADO将不把你Excel文件的第一行

Python读写excel表格的方法二

目的:实现用python的另一种方法做excel的读取.新增操作. 环境:ubuntu 16.04  Python 3.5.2 情景:之前介绍了一种操作excel文件的方法(私链),现在使用另一种方法读写excel文件,一次性读出或写入,读写也很方便,读出为有序字典,像二维数组,需要用到3个第三方模块,pyexcel-io, pyexcel-xls, xlrd,主要导入pyexcel-xls和collections,pyexcel-xls基于xlrd和pyexcel-io,所以支持xls和xls

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男"); /

python读写excel表格2

"""之前我们学习了使用xlrd 和xlwt 这两个模块来来分别读写操作excel表格固然可以实现功能,具体做法可以参加之前的上一篇博客现在我们找到了另一个模块:openpyxl 这个模块可以同时对excel 表进行读写更加的方便,实用,而且使用起来更加的简单,具体的做法如下:"""from openpyxl import load_workbook exel = load_workbook(r"C:\Users\DELL\Deskto