public void ReadExcelFile(BackgroundWorker bw, string FileName = "VASPVScrap.xls") { if (!File.Exists(path + FileName)) { return; } if (Data.Count > 0) { Data = new List <ExcelLicencija>(); } bw.ReportProgress(10); //Open file Application xlApp = new Application(); xlApp.DisplayAlerts = false; var xlWb = xlApp.Workbooks.Open(path + FileName); var xlSheet = xlApp.ActiveSheet as Worksheet; bw.ReportProgress(40); //Finding last row var last = xlSheet.Cells.SpecialCells(XlCellType.xlCellTypeLastCell, Type.Missing); //reading values var range = xlSheet.get_Range("A2", "K" + last.Row); var values = (object[, ])range.Value2; var lastRow = last.Row; bw.ReportProgress(60); //Closing excel xlWb.Close(); xlApp.Application.Quit(); xlApp.Quit(); bw.ReportProgress(80); //Filling data for (var i = 1; i < lastRow; i++) { var licencija = new ExcelLicencija(); licencija.Spaudo_Nr = Convert.ToString(values[i, 1]); licencija.Spaudo_tipas = Convert.ToString(values[i, 2]); licencija.Vardas = Convert.ToString(values[i, 3]); licencija.Pavardė = Convert.ToString(values[i, 4]); licencija.Licencijos_Nr = Convert.ToString(values[i, 5]); licencija.Profesinė_kvalifikacija = Convert.ToString(values[i, 6]); licencija.Licencijos_išdavimo_data = DateTime.FromOADate(Convert.ToDouble(values[i, 7])); licencija.Licencijos_būsena = Convert.ToString(values[i, 8]); licencija.Įsakymo_data_ir_Nr = Convert.ToString(values[i, 9]); licencija.Priežiūros_data = DateTime.FromOADate(Convert.ToDouble(values[i, 10])); licencija.Priežiūros_įsakymo_Nr = Convert.ToString(values[i, 11]); if (licencija.Spaudo_Nr != "") { Data.Add(licencija); } } bw.ReportProgress(90); }
public void UpdateData(ExcelData newData, BackgroundWorker bw) { NeedToBeUpdated = new List <ExcelLicencija>(); bw.ReportProgress(10); //Update changed records for (var i = 0; i < Data.Count; i++) { var newLicencija = newData.Data.Find(x => x.Spaudo_Nr == Data[i].Spaudo_Nr); if (newLicencija != null) { if (!newLicencija.Equals(Data[i])) { Data[i] = newLicencija; } } else { NeedToBeUpdated.Add(Data[i]); } } bw.ReportProgress(40); //Add new records newData.Data.ForEach(x => { if (!Data.Contains(x)) { Data.Add(x); } }); bw.ReportProgress(60); //Update NeedToBeUpdated for (var i = 0; i < NeedToBeUpdated.Count; i++) { var scrap = new Scrap(); var newLicencija = new ExcelLicencija(scrap.RequestRecord(NeedToBeUpdated[i].Spaudo_Nr.Trim())); if (newLicencija != null) { Data[Data.IndexOf(NeedToBeUpdated[i])] = newLicencija; } bw.ReportProgress(i * 40 / NeedToBeUpdated.Count + 60); } NeedToBeUpdated = new List <ExcelLicencija>(); //Negaliojančių licencijų panaikinimas Data = Data.FindAll(x => x.Licencijos_būsena == "Aktyvi").ToList(); bw.ReportProgress(100); }