對於連接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;

        }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章