Выбрать каждую 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);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5
Похожие ответы