Выбрать каждую 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);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д