首页 > 解决方案 > 由于选项卡名称,Webform 仅从一组 Excel 文件中读取标题

问题描述

我正在构建一个应用程序,通过 Webform 从我们设施中的比较器读取测量数据(在我们的网络上保存为 .xls 文件)。当我查询这组文件时,我只检索标题。我的代码(非常标准)将读取我能找到的任何其他 Excel 文件。我尝试从网络中删除文件并将其保存在本地,以及从 Office 2016 重命名并保存它。注意 - 这些是 .xls 文件,我无法更改。

** - 我刚刚发现有与文件同名的命名范围。我得到的结果只是命名范围内的值,而不是工作簿中的数据。这是一个如何命名(自动生成)“R87_1RCR0009654S_COIN”的示例如果我重命名或删除命名范围,这可以正常工作。

有没有办法可以改变我的选择语句来阅读这些?

这是一个代码示例,不确定是否可以在此处进行更改以读取这些文件。

private string Excel03ConString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1}'";
private string Excel07ConString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1}'";

                    string conStr, sheetName;
                    conStr = string.Format(Excel03ConString, info.FullName, "YES");
                    string fullPathToExcel = info.FullName;                    

                    //Get the name of the First Sheet.
                    using (OleDbConnection con = new OleDbConnection(conStr))
                    {
                        using (OleDbCommand cmd = new OleDbCommand())
                        {
                            cmd.Connection = con;
                            con.Open();
                            DataTable dtExcelSchema = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                            sheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
                            con.Close();
                        }
                    }

                    using (OleDbConnection con = new OleDbConnection(conStr))
                    {
                        using (OleDbCommand cmd = new OleDbCommand())
                        {
                            using (OleDbDataAdapter oda = new OleDbDataAdapter())
                            {
                                DataTable dt = new DataTable();
                                cmd.CommandText = "SELECT * From [" + sheetName + "]";
                                cmd.Connection = con;
                                con.Open();
                                oda.SelectCommand = cmd;
                                oda.Fill(dt);
                                con.Close();
                            }
                        }
                    }

标签: c#excelwebforms

解决方案


推荐阅读