关于NOPI将Excel导出到DataTabel的错误本地头签名问题

苦逼de小程序猿 2013-05-27 09:18:39
如题
导入Excel表格的时候出现了这样的错误
Wrong Local header signature: 0xE011CFD0
有的时候取数据还会发生丢失数据的问题
找了很久都没有找到解决方法~求大神们帮下忙
...全文
1694 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2014-11-17
  • 打赏
  • 举报
回复
u011279201 2014-11-17
  • 打赏
  • 举报
回复
这个应该是excel的扩展名问题,.xlsx 应该XSSFWorkbook workbook = new XSSFWorkbook(file);而xls应该用 HSSFWorkbook workbook = new HSSFWorkbook(file);
  • 打赏
  • 举报
回复
不要沉底啊。。。。
  • 打赏
  • 举报
回复
为什么没有人回复我
  • 打赏
  • 举报
回复
这个问题困扰我很久了,希望大神们可以解决
dongo7 2013-05-27
  • 打赏
  • 举报
回复
要不你用我这个方法试试吧,数据丢失是因为单元格的数据类型不一致,比如相邻两行的单元格数据类型不一致就会忽略.设置属性 IMEX=1就可以读取这些数据了.

        //读取excel
        public DataSet ExcelToDS(string Path)
        {
            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=\"Excel 8.0;IMEX=1\";";
            OleDbConnection conn = new OleDbConnection(strConn);
            conn.Open();
            string strExcel = "";
            OleDbDataAdapter myCommand = null;
            DataSet ds = null;
            strExcel = "select * from [sheet1$]";
            //sheet1 是你的excel文件需要读取的那个sheet的名字
            myCommand = new OleDbDataAdapter(strExcel, strConn);
            ds = new DataSet();
            myCommand.Fill(ds, "table1");
            return ds;
        }
获取到的是dataset,要转成datatable很容易

                DataSet ds = ExcelToDS(ExcelUrl);
                //ExcelUrl是你的excel文件的地址(完整地址带后缀名)
                DataTable drS = new DataTable();
                drS = ds.Tables[0];

110,525

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧