簡體   English   中英

c# 錯誤:將 Excel 文件轉換為 .CSV 文件時“無法找到可安裝的 ISAM”

[英]c# Error: “Could Not Find Installable ISAM” in converting Excel file into .CSV file

我正在開發一個能夠將 Excel 文件轉換為 .CSV 文件的項目,我認為我的 C# 代碼中存在一些問題,並且正在生成錯誤消息無法找到可安裝的 ISAM ,請幫我解決我的問題.

代碼:

if (dlgOne.FileName.EndsWith(".xlsx"))
{
    StrConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + srcFile + ";Extended Properties=\"Excel 12.0;\"";
}

if (dlgTwo.FileName.EndsWith(".xls"))
{
    StrConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + srcFile + ";Extended Properties=\"Excel 1.0;HDR=Yes;IMEX=1\"";
}

OleDbConnection conn = null;

conn = new OleDbConnection(StrConn);
conn.Open();  <------------ throw exception

在調試模式下,應用程序拋出異常(行: conn.Open(); )我搜索了互聯網,發現我必須將Data Source放在一個 cotes 之間,但在我的情況下它不起作用。

兩個連接字符串都是錯誤的。

對於 .xlsx,它應該是:

StrConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + srcFile + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";";

(注意額外的 Xml 部分,HDR=YES 表示您的文件有標題,IMEX=1 將所有數據視為文本和重新定位的分號。對於 .xlsm 和 .xlsb 文件,您需要不同的連接字符串 - 請參閱在這里

對於 .xls,它應該是:

StrConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + srcFile + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";";

(注意從 Excel 1.0 到 Excel 8.0 的變化,並在末尾添加了一個分號)

平台起着重要作用:如果您的代碼以 64 位編譯並且您安裝了 Office 32 位(這意味着所有 ODBC、ISAM 等驅動程序都是 32 位)。 嘗試使用“Any CPU”平台進行編譯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM