Я создаю приложение для чтения данных измерений (сохраненных в виде файлов .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();
}
}
}