Чтение листа Excel в таблицу данных с использованием столбца даты задачи сценария ssis возвращает значение null - PullRequest
0 голосов
/ 06 августа 2020

Я использую задачу сценария ssis для загрузки листа Excel в таблицу данных. Я использую приведенный ниже код для чтения листа. Здесь ячейки столбца InvoiceDate, отформатированные как Дата ( дд / мм / гггг ) в excel, все столбцы ( 30/04/2020 ) читаются правильно, но в счете-фактуре одна ячейка имеет значение 30.4.2020 вернуть как null в таблицу данных. Кто-нибудь, пожалуйста, помогите мне выбраться из этого. Мой код:

var directory = new DirectoryInfo(FolderPath);
FileInfo[] files = directory.GetFiles();


//Declare and initilize variables
string fileFullPath = "";

foreach (FileInfo file in files)
{
    fileFullPath = FolderPath + "\\" + file.Name;

    //Create Excel Connection
    string ConStr;
    string HDR;

    HDR = "YES";
    ConStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileFullPath + ";Extended Properties=\"Excel 12.0;HDR=" + HDR + ";IMEX=0\"";
    OleDbConnection cnn = new OleDbConnection(ConStr);

    //Get Sheet Name
    cnn.Open();
    DataTable dtSheet = cnn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
    DataRow drSheet = dtSheet.Rows[0];
    string sheetname;
    sheetname = drSheet["TABLE_NAME"].ToString();
    //Load the DataTable with Sheet Data so we can get the column header for Customer
    OleDbCommand Header_conn = new OleDbCommand("select top 1 * from [" + sheetname + "]", cnn);
    OleDbDataAdapter Header_adp = new OleDbDataAdapter(Header_conn);
    DataTable Header_dt = new DataTable();
    Header_adp.Fill(Header_dt);

    //Load excel data into datatable
    string EBIXSQLColumnList = "[Billing Month],[CDW Invoice Date],[CDW Invoice No]";
    OleDbConnection con = new OleDbConnection(ConStr);
    con.Open();
    OleDbCommand EBIX_conn1 = new OleDbCommand("select " + EBIXSQLColumnList + " from [" + sheetname + "]", con);
    OleDbDataAdapter EBIX_adp1 = new OleDbDataAdapter(EBIX_conn1);
    DataTable EBIX_dt1 = new DataTable();
    EBIX_adp1.Fill(EBIX_dt1);
    con.Close();                        
}

Я думаю, что stackoverflow не имеет возможности прикрепления файла Excel, поэтому я добавил снимок экрана с моим листом Excel для вашей справки. введите описание изображения здесь

Заранее спасибо

...