Попытка прочитать файл XLSM и извлечь данные из 2 столбцов. У меня есть код ниже в моем приложении c #, и он, кажется, не работает, datagridview никогда не показывает какие-либо данные, и когда я прохожу через код, я получаю до строки строки подключения, без ошибок и ничего не показывает.
Я нашел несколько примеров строки подключения OLE, чтобы преуспеть, но ни один из них не работает, и ниже приведен последний код, который я попробовал.
Есть предложения о том, что я делаю неправильно или что еще я могу попробовать?
public string ConnectionString(string FileName, string Header)
{
OleDbConnectionStringBuilder Builder = new OleDbConnectionStringBuilder();
if (System.IO.Path.GetExtension(FileName).ToUpper() == ".XLSM")
{
Builder.Provider = "Microsoft.Jet.OLEDB.4.0";
Builder.Add("Extended Properties", string.Format("Excel 8.0;IMEX=1;HDR={0};", Header));
}
else
{
Builder.Provider = "Microsoft.ACE.OLEDB.12.0";
Builder.Add("Extended Properties", string.Format("Excel 12.0;IMEX=1;HDR={0};", Header));
}
Builder.DataSource = FileName;
return Builder.ConnectionString;
}
public DataTable LoadData(string FileName)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
DataTable dt = new DataTable();
using (OleDbConnection cn = new OleDbConnection { ConnectionString = ConnectionString(FileName, "No") })
{
cn.Open();
using (OleDbCommand cmd = new OleDbCommand { CommandText = "SELECT F2 As Parent, E2 As Gender FROM [Data$A2:I300]", Connection = cn })
{
OleDbDataReader dr = cmd.ExecuteReader();
dt.Load(dr);
}
return dt;
}
}
private void excelParents_Load(object sender, EventArgs e)
{
string fn = @"C:\Temp\Template.xlsm";
dgvParentListing.DataSource = LoadData(fn);
}
На данный момент я просто ожидаю увидеть данные из листа в элементе управления datagridview в моей форме. Но он пуст и я не получаю ошибок, как только форма загружается