Я работаю с С# в WPF. Вытягивание данных в таблицы данных. Все работало нормально, пока я не перешел на использование фактического имени рабочего листа, извлеченного из листа через цикл foreach (лист в рабочей книге).
Теперь, когда у меня есть фактическое имя рабочего листа и я включаю его в свою OLEDbCommand, рабочий лист открывается на экране.
Я хотел бы предотвратить/остановить открытие файла Excel на экране, поскольку он не нужен и не нужен.
Ниже приведена строка подключения и начало try/catch с командами и запросом.
string con_string = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fullFilePath + ";Extended Properties='Excel 12.0 Xml;HDR=Yes'";
try
{
OleDbConnection con = new OleDbConnection(con_string);
con.Open();
//OleDbCommand ocon = new OleDbCommand("SELECT * FROM [" + myMonth + " " + year + "$]", con);
OleDbCommand ocon = new OleDbCommand("SELECT * FROM [" + myWorkSheet + "$]", con);
OleDbDataAdapter sda = new OleDbDataAdapter(ocon);
sda.Fill(data);
dGrid.DataContext = data;
}
Если я вернусь к закомментированной строке, используя переменные myMonth и year (созданные в методе SelectionChanged из объекта Calendar), электронная таблица не откроется.
Ниже приведен код, который получает доступ и создает список фактических рабочих листов, которые я использую для заполнения раскрывающегося списка comboBox.
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook excelBook = xlApp.Workbooks.Open(fullFilePath);
String[] excelSheets = new String[excelBook.Worksheets.Count];
int i = 0;
foreach (Microsoft.Office.Interop.Excel.Worksheet wSheet in excelBook.Worksheets)
{
excelSheets[i] = wSheet.Name;
cmbBox2.Items.Add(excelSheets[i]);
i++;
}
xlApp
все еще создается и используется. - person Cee McSharpface   schedule 06.06.2017ocon.CommandText
в обоих случаях? - person Cee McSharpface   schedule 07.06.2017