Выбрать каждую 11 строку в Excel, а промежуточные 10 строк удалить - C#

Узнай цену своей работы

Формулировка задачи:

Прошу помощи.Такая задачка.Пишу программку которая будет редактировать Еxcel документы одного типа.Одинаковое количество строк и столбцов.Столкнулся с такой проблемой.Мне нужно выбрать каждую 11 строку(всего в документе примерно 3000 строк),а промежуточные 10 строк удалить.Подскажите что добавить в код.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using Excel = Microsoft.Office.Interop.Excel;
  11. namespace WindowsFormsApplication
  12. {
  13. public partial class Form1 : Form
  14. {
  15. public Form1()
  16. {
  17. InitializeComponent();
  18. }
  19. private void Form1_Load(object sender, EventArgs e)
  20. {
  21. }
  22. private void button1_Click(object sender, EventArgs e)
  23. {
  24.  
  25. //поиск файла Excel
  26. OpenFileDialog ofd = new OpenFileDialog();
  27. ofd.Multiselect = false;
  28. ofd.DefaultExt = "*.xls;*.xlsx";
  29. ofd.Filter = "Microsoft Excel (*.xls*)|*.xls*";
  30. ofd.Title = "Выберите документ Excel";
  31. if (ofd.ShowDialog() != DialogResult.OK)
  32. {
  33. MessageBox.Show("Вы не выбрали файл для открытия", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Information);
  34. return;
  35. }
  36. string xlFileName = ofd.FileName; //имя нашего Excel файла
  37.  
  38. Excel.Range Rng;
  39. Excel.Workbook xlWB;
  40. Excel.Worksheet xlSht;
  41. Excel.Range zagl1;
  42. Excel.Range zagl2;
  43. Excel.Range zagl3;
  44. Excel.Range zagl4;
  45. Excel.Range zagl5;
  46. Excel.Range zagl6;
  47. Excel.Range cell;
  48. Excel.Application xlApp = new Excel.Application(); //создаём приложение Excel
  49. xlApp.Visible = true;
  50. xlWB = xlApp.Workbooks.Open(xlFileName); //открываем наш файл
  51. xlSht = xlWB.Worksheets["Лист1"]; //или так xlSht = xlWB.ActiveSheet //активный лист
  52. Rng = (Excel.Range)xlSht.Columns["G:P", Type.Missing];//очистка столбцов
  53. Rng.Clear();
  54. zagl1 = xlSht.get_Range("A1", Type.Missing);
  55. zagl1.Value2 = "Время,с";
  56. zagl2 = xlSht.get_Range("B1", Type.Missing);
  57. zagl2.Value2 = "P1,атм";
  58. zagl3 = xlSht.get_Range("C1", Type.Missing);
  59. zagl3.Value2 = "P2,атм";
  60. zagl4 = xlSht.get_Range("D1", Type.Missing);
  61. zagl4.Value2 = "P3,атм";
  62. zagl5 = xlSht.get_Range("E1", Type.Missing);
  63. zagl5.Value2 = "P4,атм";
  64. zagl6 = xlSht.get_Range("F1", Type.Missing);
  65. zagl6.Value2 = "P5,атм";
  66. int m, n, z;
  67. xlSht.Activate();
  68. for (m = 2; m < 3000; m = m + 10)
  69. {
  70. for (n = 1; n < 7; n++)
  71. {
  72. cell = (Excel.Range)xlSht.Cells[m, n];
  73. cell.Delete();
  74. }
  75. }
  76.  
  77. }
  78.  
  79. private void button2_Click(object sender, EventArgs e)
  80. {
  81. }
  82. private void button3_Click(object sender, EventArgs e)
  83. {
  84. Close();
  85. }
  86. }
  87. }

Решение задачи: «Выбрать каждую 11 строку в Excel, а промежуточные 10 строк удалить»

textual
Листинг программы
  1. iLastRow = xlSht.Cells[xlSht.Rows.Count, "A"].End[Excel.XlDirection.xlUp].Row;  //последняя заполненная строка в столбце А
  2. StartRow = 2;
  3. for (m = StartRow; m < iLastRow; m++)
  4. {
  5.      ((Excel.Range)xlSht.Rows[(m + 1) + ":" + (m + 10)]).EntireRow.Delete(Excel.XlDeleteShiftDirection.xlShiftUp);
  6. }

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


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

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

6   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы