A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 寥若星辰 中级黑马   /  2012-12-21 20:36  /  1254 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

EXCEL读取NPOI的具体操作是什么呢?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

1 个回复

倒序浏览
using NPOI.HSSF.UserModel;
using NPOI.HSSF.Extractor;
using TestCases.HSSF;
// 下面是选择.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));
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马