Я использую задачу сценария 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 для вашей справки. введите описание изображения здесь
Заранее спасибо