';的问题;外部表不是预期的格式';例外

本文关键字:格式 例外 问题 外部 | 更新日期: 2023-09-27 17:50:55

可能重复:
Excel"外部表格不是预期格式。">

我正在做的是获取所有的表名并将它们插入到列表中。这是我的代码:

public List<string> GetEditExcelSheets(string fileName, out OleDbException Error)
{
    List<string> Result = new List<string>();
    Error = null;
    if (!string.IsNullOrEmpty(fileName) && File.Exists(fileName))
    {
        string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties='"Excel 12.0 XML;HDR=YES;IMEX=1'"";
        if (!string.IsNullOrEmpty(connectionString))
        {
            using (OleDbConnection connection = new OleDbConnection(connectionString))
            {
                try
                {
                    connection.Open();
                    DataTable tables = connection.GetSchema("Tables");
                    foreach (DataRow row in tables.Rows)
                    {
                        string TableName = Convert.ToString(row["TABLE_NAME"]);
                        Result.Add(TableName);
                    }
                }
                catch (OleDbException ex)
                {
                    Error = ex;
                }
                finally
                {
                    if (connection.State == System.Data.ConnectionState.Open)
                    {
                        connection.Close();
                    }
                }
            }
        }
    }
    return Result;
}

我得到这个错误:

"'外部表不是预期格式'">

到达此代码行时:

connection.Open();

在谷歌上搜索解决方案后,我尝试过几次编辑连接字符串。但是没有其他连接字符串对我有帮助,这个连接字符串应该可以工作。我似乎能弄清楚我做错了什么。

';的问题;外部表不是预期的格式';例外

我找到了解决方案。由于我使用的是打开的XML sdk,xlsx文件以xlsx扩展名保存,但该文件不是excel文件。这是一个打开的xml文件,以xlsx扩展名保存,因此Excel可以打开它。这意味着我不能使用sql查询来读取文件中的数据。