对于连接Excel时“外部表不是预期的格式”错误的处理

对于由File.Create(fileName)创建的Excel文件,虽然格式是Excel文件,但是并不是标准的Excel文件,用Ado.net对这种文件连接操作时,会提示“外部表不是预期的格式”错误。这种文件用文本打开时和txt的格式是一样的。

对于提示“外部表不是预期的格式”错误的Excel文件的处理解决办法,用文件读取方式读入DataTable,再做处理

 

//读文件并存在内存表中

        private DataTable ReadFile(string fileName, int columnNum)

        {

            DataTable dataRead = createDataTable(columnNum);

            if (File.Exists(fileName))

            {

                string strRead;//存储读取的文件数据

                Encoding encoding = Encoding.GetEncoding("GB18030");

                try

                {

                    FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

                    StreamReader sr = new StreamReader(fs, encoding);

                    strRead = sr.ReadToEnd();

                    sr.Close();

                    fs.Close();

                    //导入内存DataTable

                    string[] readArray = strRead.Split(new char[] { '/n' }, StringSplitOptions.RemoveEmptyEntries);

                    foreach (string row in readArray)

                    {

                        string[] column = row.Replace(" ", "").Replace("/r","").Split(new char[] { '/t' }, StringSplitOptions.RemoveEmptyEntries);

                        DataRow dr = dataRead.NewRow();

                        for (int i = 0; i <column.Length; i++)

                        {

                            dr[i] = column[i];

                        }

                        dataRead.Rows.Add(dr);

                    }

                }

                catch (Exception ex)

                {

                    Console.Write(ex.ToString());

                }

            }

            else

            {

                MessageBox.Show("缺少档案文件");

            }

            return dataRead;

        }

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值