Выбрать каждую 11 строку в Excel, а промежуточные 10 строк удалить - C#
Формулировка задачи:
Прошу помощи.Такая задачка.Пишу программку которая будет редактировать Еxcel документы одного типа.Одинаковое количество строк и столбцов.Столкнулся с такой проблемой.Мне нужно выбрать каждую 11 строку(всего в документе примерно 3000 строк),а промежуточные 10 строк удалить.Подскажите что добавить в код.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Excel = Microsoft.Office.Interop.Excel; namespace WindowsFormsApplication { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { //поиск файла Excel OpenFileDialog ofd = new OpenFileDialog(); ofd.Multiselect = false; ofd.DefaultExt = "*.xls;*.xlsx"; ofd.Filter = "Microsoft Excel (*.xls*)|*.xls*"; ofd.Title = "Выберите документ Excel"; if (ofd.ShowDialog() != DialogResult.OK) { MessageBox.Show("Вы не выбрали файл для открытия", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } string xlFileName = ofd.FileName; //имя нашего Excel файла Excel.Range Rng; Excel.Workbook xlWB; Excel.Worksheet xlSht; Excel.Range zagl1; Excel.Range zagl2; Excel.Range zagl3; Excel.Range zagl4; Excel.Range zagl5; Excel.Range zagl6; Excel.Range cell; Excel.Application xlApp = new Excel.Application(); //создаём приложение Excel xlApp.Visible = true; xlWB = xlApp.Workbooks.Open(xlFileName); //открываем наш файл xlSht = xlWB.Worksheets["Лист1"]; //или так xlSht = xlWB.ActiveSheet //активный лист Rng = (Excel.Range)xlSht.Columns["G:P", Type.Missing];//очистка столбцов Rng.Clear(); zagl1 = xlSht.get_Range("A1", Type.Missing); zagl1.Value2 = "Время,с"; zagl2 = xlSht.get_Range("B1", Type.Missing); zagl2.Value2 = "P1,атм"; zagl3 = xlSht.get_Range("C1", Type.Missing); zagl3.Value2 = "P2,атм"; zagl4 = xlSht.get_Range("D1", Type.Missing); zagl4.Value2 = "P3,атм"; zagl5 = xlSht.get_Range("E1", Type.Missing); zagl5.Value2 = "P4,атм"; zagl6 = xlSht.get_Range("F1", Type.Missing); zagl6.Value2 = "P5,атм"; int m, n, z; xlSht.Activate(); for (m = 2; m < 3000; m = m + 10) { for (n = 1; n < 7; n++) { cell = (Excel.Range)xlSht.Cells[m, n]; cell.Delete(); } } } private void button2_Click(object sender, EventArgs e) { } private void button3_Click(object sender, EventArgs e) { Close(); } } }
Решение задачи: «Выбрать каждую 11 строку в Excel, а промежуточные 10 строк удалить»
textual
Листинг программы
iLastRow = xlSht.Cells[xlSht.Rows.Count, "A"].End[Excel.XlDirection.xlUp].Row; //последняя заполненная строка в столбце А StartRow = 2; for (m = StartRow; m < iLastRow; m++) { ((Excel.Range)xlSht.Rows[(m + 1) + ":" + (m + 10)]).EntireRow.Delete(Excel.XlDeleteShiftDirection.xlShiftUp); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д