Поиск ячейки в excel - C#

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

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

тут немного наваял пользуясь просторами интернета и совсем запутался что нужно то мне: 1) Найти ячейку 2) Получить адрес строки 3) скопировать ячейку и вставить в новом месте Данный код может содержать много ошибок
Excel.Range Cifra = ObjWorkExcel.get_Range("A1", "100Y");
            var r = Cifra.Find("123", Type.Missing,
                Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart,
                Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, false,
                Type.Missing, Type.Missing); 
            int ro = r.Row;
 
            Excel.Range RngToCopy = WS.get_Range("C"+ro);
            Excel.Range RngToInsert = WS.get_Range("D" + ro);
            RngToInsert.Insert(Microsoft.Office.Interop.Excel.XlInsertShiftDirection.xlShiftDown, RngToCopy.Copy(Type.Missing));

Решение задачи: «Поиск ячейки в excel»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Excel = Microsoft.Office.Interop.Excel;
 
 
 
 
 
 
 
 
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
           
            Excel.Application ObjWorkExcel = new Excel.Application(); //сам эксель
            Excel.Workbook WB; //в эту книгу будем копировать
            Excel.Worksheet WS;// в этот лист
            Excel.Workbook ObjWorkBooks;// из этой книги будем копировать
            Excel.Worksheet ObjWorkSheets;//с этого листа
            WB = ObjWorkExcel.Workbooks.Add(System.Reflection.Missing.Value);//создаем новую книгу
            WS = (Excel.Worksheet)WB.Sheets[1];//выбираем 1 лист
            ObjWorkBooks = ObjWorkExcel.Workbooks.Open("d:\\copy.xlsx",
            Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); //открываем существующую книгу
            ObjWorkSheets = ObjWorkBooks.Worksheets[1];//берем 1 лист
            int LastRow = ObjWorkBooks.Sheets[1].Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row; // находим в ней последнюю строку, можно заменить на известный номер
            
            //ObjWorkSheets.get_Range(Name).Copy(); // копи
                        
            string FindObj = "123";
            int r = 1, i=0 ;
            
            string[] c = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};
            String Obj = String.Empty;
            String column = String.Empty;
            Obj = "1";
 
 
            
 
            while (Obj != FindObj && r<20000)
            {
                while (i < c.Length && FindObj != Obj)
                {
                  // r = 7;
                    
                    string Name = c[i] + r; //берем диапазон ячееку
                    Excel.Range ObjE = ObjWorkSheets.get_Range(Name, Type.Missing); //передаем значение ячейки переменной
                    Obj = Convert.ToString(ObjE.Value2); //Конвертируем в строковую
                    Console.WriteLine(Obj); //выводим на экран
                    column = c[i];
                    i++;
                    
                }
                i = 0;
                r++;
            }
            r--;
 
 
            Console.WriteLine("Мы искали " + FindObj + ", нашли \" " + Obj + " \", оно было в ячейке " + column + r + ".");
            Console.ReadKey();
 
            ObjWorkExcel.Quit();
           
            
 
        }
    }
}

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


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

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

15   голосов , оценка 3.6 из 5