Поиск ячейки в 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();
}
}
}