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