Ускорить работу с Excel - C#
Формулировка задачи:
Excel.Application xlApp = new Excel.Application(); //Excel xlApp.ScreenUpdating = false; Excel.Workbook xlWB; //рабочая книга Excel.Worksheet xlSht; //лист Excel xlWB = xlApp.Workbooks.Open(@"D:\test1223.xlsx"); //название файла Excel xlSht = xlWB.Sheets[1]; //название листа или можно так если лист первый по порядку - xlWB.Sheets[1]; int iLastRow = xlSht.Cells[xlSht.Rows.Count, "A"].End[Excel.XlDirection.xlUp].Row; //последняя заполненная строка в столбце А for (int i = iLastRow; i >= 2; i--) { if (xlSht.Cells[i, 2].Value.ToString().Length < 8) { xlSht.Rows[i].Delete(); } } xlApp.ScreenUpdating = true; xlWB.Close(true); //закрываем книгу, сохраняя изменения
Решение задачи: «Ускорить работу с Excel»
textual
Листинг программы
using System; using System.Windows.Forms; using Excel = Microsoft.Office.Interop.Excel; namespace TestExcel { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Excel.Application xlApp = new Excel.Application(); //Excel Excel.Workbook xlWB; //рабочая книга Excel.Worksheet xlSht; //лист Excel Excel.Range Rng; //диапазон ячеек xlWB = xlApp.Workbooks.Open(@"C:\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; //последняя заполненная строка в столбце А var arrData = (object[,])xlSht.Range["A1:A" + iLastRow].Value; //берём данные с листа Excel object[,] arrResult = new object[arrData.GetUpperBound(0), arrData.GetUpperBound(1)]; //указываем размер нового массива int iCol = 1; //предполагаем, что у нас лишь 1 столбец с данными в нашем примере int iRowInResultArray = 0; for (int iRow = 1; iRow <= arrData.GetUpperBound(0); iRow++) //цикл по строкам { if (arrData[iRow, iCol] != null) //если ячека не пустая { if (arrData[iRow, iCol].ToString().Length > 8) //наше условие - длина больше 8 { iRowInResultArray ++; arrResult[iRowInResultArray, 0] = arrData[iRow, iCol].ToString(); //перекладываем данные с общего массива в чистый массив } } } //xlSht.Cells.Clear();//удаляем данные со всего листа xlSht.Range["B1"].Resize[arrResult.GetUpperBound(0), arrResult.GetUpperBound(1)+1].Value = arrResult; //выгрузка результата на лист //можно выгрузить в новый книгу //xlWB = xlApp.Workbooks.Add(); //создаём новую книгу //xlWB.Worksheets[1].Range["A1"].Resize[arrResult.GetUpperBound(0), arrResult.GetUpperBound(1) + 1].Value = arrResult; //выгрузка результата на лист xlApp.Visible = true; //отображаем Excel MessageBox.Show("Конец!", "Программа", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д