C# —— 使用C# NPOI 读取Excel(.xls)文件

using NPOI.HSSF.UserModel;//需要引用【NPOI.dll】最新版本号是:1.2.3.0,下载地址百度一下这个DLL就OK
using NPOI.HSSF.Extractor;//NPOI是一个比较全的库,简单介绍在文章结尾处
using TestCases.HSSF;//需要引用类【HSSFTestDataSamples.cs】,下载地址百度一下这个.CS文件就OK

        //下面是选择.XLS文件所在地的BUTTON
        private void Button_SelcetFile_Click(object sender, EventArgs e)
        {
            OpenFileDialog OFD = new OpenFileDialog();
            OFD.Filter = "xls files (*.xls)|*.xls|All files (*.*)|*.*"; //只选取xls文件
            OFD.RestoreDirectory = true; //还原当前目录
           
            if (OFD.ShowDialog() == DialogResult.OK)


                textBox_xlsPath.Text = OFD.FileName; //将文件路径放入路径显示文本框


        }

 

         /// <summary>
        /// 读取xls指定页、指定行、指定列的数值
        /// </summary>
        /// <param name="fileName">文件路径和文件名</param>
        /// <param name="sheetNum">页</param>
        /// <param name="rowNum">行</param>
        /// <param name="colNum">列</param>
        /// <returns>返回指定文件、页、行、列的数值</returns>

        private string readXls(string fileName, int sheetNum, int rowNum, int colNum)
        {
            try
            {
                HSSFWorkbook workbook = HSSFTestDataSamples.OpenSampleWorkbook(fileName);
                ExcelExtractor extractor = new ExcelExtractor(workbook);
                return extractor.CellValue(sheetNum, rowNum, colNum);
            }
            catch (System.Exception ex)
            {
                MessageBox.Show("Error!\n请检查此文件是否已被打开或被其他应用程序占用!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return "";
            }
        }

 

        /// <summary>
        /// 检查相应路径的文件是否存在,你的xls行列异常值的检测也可以丢进来
        /// </summary>
        /// <returns>返回是否存在的bool值</returns>

        private bool checkParams()
        {
            if (!System.IO.File.Exists(this.textBox_xlsPath.Text))
            {
                MessageBox.Show("The selected file is not exists, please select again!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            return true;
        }

 

       //读取XLS行列对应值的函数,也可以不用函数,直接把里面的语句放到你程序想读取值的地方即可
        private void Read_XLS_Value()
        {
            string Temp;
            Temp = readXls(textBox_xlsPath.Text, 0, 1, 2); //参数分别是:XLS文件地址,sheet页号,行号,列号
                         //textBox_xlsPath在上面的函数中被赋值为地址了,页、行、列号起始都是从0开始计数,这里要注意
            MessageBox.Show(string.Format("让我们看看取到的值是否正确{0}", copy_reduction));
        }

——————————————————————

好了,这下使用readXls(textBox_xlsPath.Text, Sheet, line, Row); 就可以读取到XSL文件的任何一个值了。

 

解惑:

什么是NPOI

NPOI,顾名思义,就是POI.NET版本。那POI又是什么呢?POI是一套用Java写成的库,能够帮助开发者在没有安装微软Office的情况下读写Office 97-2003的文件,支持的文件格式包括xls, doc, ppt等。目前POI的稳定版本中仅支持Excel文件格式xls,其他的都属于不稳定版本(放在poiscrachpad目录中)。NPOI是构建在POI 3.x版本之上的,本月发布的NPOI 1.2是对应于POI 3.2 final的,所以它支持Excel文件读写,但由于人手和精力原因,还没有实现读写Word, PowerPoint, Visio的文件格式。

 

 NPOI的官方网站是啥?

http://npoi.codeplex.com/


你可能感兴趣的:(String,Excel,C#,button,textbox,powerpoint)