Я читаю excel, имея миллион записей, сначала я обращаюсь к своей таблице (без записей) и получаю Datable. Я запрашиваю мою таблицу, чтобы получить имя столбца в качестве определения в моем листе excel, используя псевдоним.Как вставить данные из excel в datatable с заголовками?
var dal = new clsConn();
var sqlQuery = "SELECT FETAPE_THEIR_TRANDATE \"Date\" ,ISSUER Issuer, ISSU_BRAN Branch , STAN_NUMB STAN, TERMID TermID, ACQUIRER Acquirer,DEBIT_AMOUNT Debit,CREDIT_AMOUNT Credit,CARD_NUMB \"Card Number\" , DESCRIPTION Description FROM ALLTRANSACTIONS";
var returntable = dal.ReadData(sqlQuery);
DataRow ds = returntable.NewRow();
var dtExcelData = returntable;
Так мой DataTable выглядит так,
Затем я прочитал запись из Excel листа
OleDbConnection con = null;
if (ext == ".xls")
{
con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;");
}
else if (ext == ".xlsx")
{
con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath + ";Extended Properties=\"Excel 12.0;IMEX=2;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text\"");
}
con.Open();
dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string getExcelSheetName = dt.Rows[0]["Table_Name"].ToString();
//OleDbCommand ExcelCommand = new OleDbCommand(@"SELECT * FROM [" + getExcelSheetName + @"]", con);
OleDbCommand ExcelCommand = new OleDbCommand("SELECT F1, F2, F3, F4, F5,F6,F7,F8,F9,F10 FROM [Sheet1$]", con);
OleDbDataAdapter ExcelAdapter = new OleDbDataAdapter(ExcelCommand);
try
{
ExcelAdapter.Fill(dtExcelData); //Here I give the datatable which i made previously
}
catch (Exception ex)
{
//lblAlert2.CssClass = "message-error";
//lblAlert2.Text = ex.Message;
}
Он читает успешно и заполнять данные в DataTable, но создать свою собственную колонку в таблице данных, например, от F1 до F10, как я могу переместить эти данные в соответствии с моими определенными столбцами в datatable
Как я Обойдется это не создавать другие столбцы (f1, f2..f10) любой обходной путь будет заметно или Пожалуйста, объясните, что я делаю неправильно и как я могу добиться этого.
UPDATE: My Excel файл выглядит как этот драйвер
Как выглядит ваше превосходное впечатление? Снимок этого будет полезен. – Spidey
Почему вы используете 'SELECT F1, F2, F3, F4, F5, F6, F7, F8, F9, F10 FROM [Sheet1 $]', а не '' select * из [Sheet1 $] '? – Spidey
Я пробовал Оба запроса, оба дают одинаковые результаты –