Выполнить код по датам из файла Excel - C#
Формулировка задачи:
в файле excel в столбце С записаны даты в формате 02.06.2017 10:07:14. Подскажите пожалуйста как мне работать с каждой строкой за каждый день? то есть пока идет 02.06.2017 я сравниваю строки за эту дату, потом когда переходит на 03.06.2017 заново начинаю сравнение?
Решение задачи: «Выполнить код по датам из файла Excel»
textual
Листинг программы
//1. взял бы в массив все данные с листа, например, вот так
Excel.Application xlApp = new Excel.Application(); //Excel
Excel.Workbook xlWB; //рабочая книга
Excel.Worksheet xlSht; //лист Excel
Excel.Range Rng; //диапазон ячеек
xlWB = xlApp.Workbooks.Open(@"G:\C#\Test Excel.xlsx"); //название файла Excel
xlSht = xlWB.Worksheets["Лист1"]; //название листа или 1-й лист в книге xlSht = xlWB.Worksheets[1];
int iLastRow = xlSht.Cells[xlSht.Rows.Count, "A"].End[Excel.XlDirection.xlUp].Row; //последняя заполненная строка в столбце А
int iLastCol = xlSht.Cells[1, xlSht.Columns.Count].End[Excel.XlDirection.xlToLeft].Column; //последний заполненный столбец в 1-й строке
//var arrData = (object[,])xlSht.Range["A1:M" + iLastRow].Value; //берём данные с листа Excel
//var arrData = (object[,])xlSht.Range["A1"].CurrentRegion.Value;
var arrData = (object[,])xlSht.Range[xlSht.Range["A1"], xlSht.Cells[iLastRow, iLastCol]].Value; //берём данные с листа Excel в двумерный массив
int iTotalRows = arrData.GetUpperBound(0);
//2. в цикле бегал бы по столбцу С (т.е. по 3-му столбцу) массива arrData, например, вот так
for (int iRow = 1; iRow <= iTotalRows; iRow++) //цикл по строкам
{
if (arrData[iRow, 3] != null) //если ячейка не пустая
{
//тут вам надо через Split(' ') разделить строку с датой и временем, чтобы получили дату
var myDate = arrData[iRow, 3].Split(' ');
//MessageBox.Show(myDate[0]); //это для проверки
//а дальше делайте что хотите
}
}