NOPI读取excel文件抛异常怎么解决?哪位大师帮忙看下!

.Net技术 码拜 9年前 (2015-05-10) 849次浏览 0个评论
 

功能很简单,点击按钮,弹出对话框,选择xls文件,用NOPI插件读件excel文件显示到datagridview中,但现在点击选择文件后,就抛异常,哪位大师看下

这是按钮代码:
 private void button1_Click(object sender, EventArgs e)
        {
            string name = null ;
            OpenFileDialog filename = new OpenFileDialog();
            filename.InitialDirectory = Application.StartupPath;
            filename.Filter = “All files(*.*)|*.*|xls files(*.xls)|*.xlsx”;
            filename.FilterIndex = 2;
            filename.RestoreDirectory = true;
            if (filename.ShowDialog() == DialogResult.OK)
            {
                name = filename.FileName.ToString();
                //string name=path.Substring.(path.LastIndexOf(“\”)+1);
 
            }

            //MessageBox.Show(name);
            //ExcelHelper biao = new ExcelHelper();
            DataTable dt = new DataTable();
            dt = ExcelHelper.ExcelToDataTable(name, 0);
            dgv_one.DataSource = dt;

下面是功能代码:
public static DataTable ExcelToDataTable(string strFileName, int sheetIndex = 0)
        {
            DataTable dt = new DataTable();
            HSSFWorkbook hssfworkbook = null;
            XSSFWorkbook xssfworkbook = null;
            string fileExt = Path.GetExtension(strFileName);//获取文件的后缀名
            using (FileStream file = new FileStream(strFileName, FileMode.Open, FileAccess.Read))
            {
                if (fileExt == “.xls”)
                    hssfworkbook = new HSSFWorkbook(file);   //抛异常,未处理IOexception     Invalid header signature; read 0x0003001C171C7D84, expected 0xE11AB1A1E011CFD0
                else if (fileExt == “.xlsx”)
                    xssfworkbook = new XSSFWorkbook(file);//初始化太慢了,不知道这是什么bug  抛异常,未处理Zipexception     Wrong Local header signature: 0xD71C7D84
            }
            if (hssfworkbook != null)
            {
                HSSFSheet sheet = (HSSFSheet)hssfworkbook.GetSheetAt(sheetIndex);
                if (sheet != null)
                {
                    System.Collections.IEnumerator rows = sheet.GetRowEnumerator();
                    HSSFRow headerRow = (HSSFRow)sheet.GetRow(0);
                    int cellCount = headerRow.LastCellNum;
                    for (int j = 0; j < cellCount; j++)
                    {
                        HSSFCell cell = (HSSFCell)headerRow.GetCell(j);
                        dt.Columns.Add(cell.ToString());
                    }
                    for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++)
                    {
                        HSSFRow row = (HSSFRow)sheet.GetRow(i);
                        DataRow dataRow = dt.NewRow();
                        for (int j = row.FirstCellNum; j < cellCount; j++)
                        {
                            if (row.GetCell(j) != null)
                                dataRow[j] = row.GetCell(j).ToString();
                        }
                        dt.Rows.Add(dataRow);
                    }
                }

异常:
NOPI读取excel文件抛异常怎么解决?哪位大师帮忙看下!

5分
去 nopi群里 问,有 nopi qq群,
30分
http://bbs.csdn.net/topics/390830774

我这个例子不仅仅适合BS 你把我的类扔到CS里一样用..

试试这个

2分
NOPI是什么,我还没看到呢!楼主好高深。。。
3分
用2楼的给的资源,可以搞定你的问题

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明NOPI读取excel文件抛异常怎么解决?哪位大师帮忙看下!
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!