1. 程式人生 > >對於連線Excel時“外部表不是預期的格式”錯誤的處理

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

        }

相關推薦

對於連線Excel外部預期格式錯誤處理

對於由File.Create(fileName)建立的Excel檔案,雖然格式是Excel檔案,但是並不是標準的Excel檔案,用Ado.net對這種檔案連線操作時,會提示“外部表不是預期的格式”錯誤。這種檔案用文字開啟時和txt的格式是一樣的。 對於提示“外部表不是預期的格

詳講:C#快速匯出多個sheet到excel的兩種方法(Cell和Range方法), 解決了(匯入外部預期格式

C# 匯出的表載入時報錯:外部表不是預期的格式。的解決方案 在網絡卡找了一些Excel匯出的方法,大部分能匯出,但時不能將匯出的Excel匯入。總是報:外部表不是預期的格式 找了好久終於找到了解決方案。 這是本人整理修改後的的可以實現匯出匯入的方法。供大家學習參考,方法就是用一個沒問題的

c#中匯入excel至sql server出現“外部預期格式

匯入excel至sql server時出現“外部表不是預期格式”的排查: 首先要注意有兩個字串,一個用於初始化SqlConnection,一個用於初始化OleDbConnection。 前者在Settings.settings中手動設定比較不容易出錯,之後引用該設定: s

excel匯入Oracle oracle中資料匯出到excel 超詳細 解決在指定的dsn中驅動程式和應用程式匹配 解決外部預期格式

將excel中的資料匯入到Oracle表中:開啟PL/SQL找到tools下的ODBC.....問題來了:點選了connect的時候報這個錯在指定的DSN中,驅動程式和應用程式之間的體系結構不匹配,就是驅動和軟體之間不相容,解決辦法:找到並點開新增,雙擊...名字,描述任意:

C#讀取excel出錯提示外部預期格式

很多人換了2007/2010後,問的最多的問題之一是2003裡最經典的ADO中的“provider=Microsoft.Jet.OLEDB.4.0”這句怎麼不能用了。 百度一下可以瞭解到,Microsoft.Jet.OLEDB.4.0是MicrosoftJet引擎,這適用於2003版本(2003之前的我沒裝

匯入EXCEL報錯:"外部預期格式錯誤"、檔案格式和副檔名匹配,檔案可能已損壞或安全的解決方法

開發環境:C# + EXCEL2003 + VS2008 問題: 當使用如下程式碼從gridview匯出資料到excel後,無法從excel取出資料,具體如下: 1、原使用的程式碼: protected void ExcelOut_Click(object

匯入EXCEL2007報錯"外部預期格式錯誤"的解決方法

錯誤經過:在讀取Excel時,出現外部表不是預期的格式。 錯誤原因1: 由於Excel 97-2003的連線格式與Excel 2007 不同造成。 很多人換了2007後,問的最多的問題之一是2003裡最經典的ADO中的“provider=Microsoft.Jet.O

將.xls檔案匯入SQL SERVER 2005時報錯:外部預期格式,解決方法

這個主要是由於excel檔案格式不標準導致的 解決方法: 把該excel檔案另存為一下,在匯入即可。 注意: sqlserver2005好像不識別.xlsx的,同樣的,我們另存為時,存為.xls即可匯入。

ASP.NET使用信任連線SqlServer出現的能登陸現象的解決

使用ASP.NET的B/S應用,資料庫聯接字串使用integrated security=sspi時,登陸SqlServer會失敗,錯誤資訊為使用者$MachineName/ASPNET不能登陸。原因是預設的情況下,使用

MySql使用Index關鍵字為欄位建立成功

當在Mysql中建立表時,如果欄位名包含'Index'將執行不成功。 解決辦法: 1、簡單粗暴,更換欄位名稱 2、就是Index將前後加` 如:`Index`即可,那是不是遇到MySql其他關鍵字做為表字段的時候是不是同樣的解決辦法呢。

java和groovy混合程式設計提示找到符合錯誤解決辦法

本人在使用java和groovy混合程式設計時,發現一個問題,當java和groovy相互呼叫的過程中在本機執行沒有任何問題,但當弄到Jenkins上之後總是報錯,本機使用gradle執行build的task的時候,也是報錯,資訊如下: 錯誤: 找不到符號 import com.fission

VB遇到的問題【執行EXE出現“VB未預期錯誤”】【Component ‘RICHTX32.0CX’not correctly registered: file is.....”】

在寫一個伺服器程式的時候剛開始還好  後來換了一個圖示之後就不斷彈出"未預期錯誤" baidu下發現原來是32位點陣圖在16位下不能識別,故發生該錯誤 設定-->顏色質量-->修改為匹配的 Icon圖示一定要是24位顏色以下!網上找的基本上都是32位色的,所以需要用IconXP等軟體將ico圖示

vue 除去#符號,並部署後瀏覽器重新整理出現404錯誤處理

export default new Router({mode:"history",  //把模式改成history ,就可以去除 # 符號// base:'/',  routes: [    {      path: '/',      name: 'HelloWorld'

使用codeReview工具,消除一些空格格式錯誤警告的eclipse相關配置

1.關於codereview的工具我接觸到的有一下三種,都曾經使用過。 第一個是:google的codeReview工具,gerrit,目前使用的比較多吧,但沒有第二個多。 第二個是:facebook的codeReview工具,phabricator。相對於第一個,這

水晶報表 Crystal Report 調用存儲過程出錯 找 ,解決方法。

top app net amp lean local database sep asp.net 用 CrystalReportViewer1 控件在asp.net的網頁上顯示報表,假設做報表時調用數據表數據的方式調用是能夠成功的。但報表是用存儲過程獲

單提交js頁面重新整理判斷輸入是否為空

表單:給表單加上 onsubmit="return submitCheck();" <form action="index.php" method="post" onsubmit="return submitCheck();"> <table> <tr&

Win10遠端桌面連線winserver2012, 出現 身份驗證錯誤,要求的函式受支援,這可能是由於CredSSP加密Oracle修正 解決方法

解決方法: 執行 gpedit.msc 本地組策略: 計算機配置>管理模板>系統>憑據分配>加密Oracle修正 選擇啟用並選擇易受攻擊。   如果是家庭版什麼的,可能無法直接開啟組策略編輯器;可以試著在登錄檔裡,自己手動建立 H

postgresql當存在刪除及當存在刪除操作

如果表不存在,而強行去刪除表,SQL會報錯;類似的如果表已經存在而強行去建立同名表,SQL會報錯。需要一種方法安全地刪除和建立表,解決方案的核心在於“exists”關鍵字。 安全地刪除某表(drop

連線ORACLE資料庫,是是必須要安裝oracle客戶端的執行

大神給的回答: net連線oracle使用的是oci介面,必須安裝oracle客戶端,並配置本地網路服務名 tnsnames.ora。不過oracle網站有精簡版的客戶端軟體,不到30M吧,解壓,並編輯tnsnames.ora既可。很是方便,不用安裝700M左右的客戶端 ,而且安裝後還不好解除安裝。如果是j

myeclipse連線mysql生成資料中文字元亂碼或問號(解決方法)

出現這個問題有以下三步解決思路: 1. 檢查myeclipse的編碼格式 windows---->Preferences---->general---->Workspace,右側視窗Text file encoding,選擇Other,改變為UTF-8。 此時重新整理專案,看能否正常寫