Webform только читает заголовки из группы файлов Excel из-за имени вкладки - PullRequest
0 голосов
/ 22 апреля 2020

Я создаю приложение для чтения данных измерений (сохраненных в виде файлов .xls в нашей сети) из компараторов по всему нашему объекту через веб-форму. Когда я запрашиваю эту группу файлов, я получаю только заголовки. Мой код (довольно стандартный) будет читать любой другой файл Excel, который я могу найти. Я попытался удалить файл из сети и сохранить его локально, а также переименовать и сохранить его из офиса 2016. Примечание. Это файлы .xls, и я не могу это изменить.

** - I только что обнаруженное переименование вкладки в книге позволяет мне прочитать их. Вот пример того, как они названы (автоматически сгенерированы) "R87_1RCR0009654S_COIN". Если я удаляю R, все работает нормально.

Есть ли способ, которым я могу изменить свое предложение select, чтобы прочитать их, или есть объяснение почему R вызывает это?

Вот пример кода, не уверен там, есть ли изменение, которое я могу сделать здесь, чтобы прочитать эти файлы.

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();
                            }
                        }
                    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...