powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Работа с текущей книгой Excel в С#
14 сообщений из 14, страница 1 из 1
Работа с текущей книгой Excel в С#
    #39029263
Здравствуйте, я новичок в С#, поэтому просьба не судить строго.
Возникла идея упростить себе жизнь посредством создания надстройки в Excel 2010 с помощью Visual C#.
Надстройку создал, но возникли проблемы:
Как с помощью си шарпа работать с текущей книгой Excel (с открытой в данный момент)?
То есть мне надо получить доступ к методам C#, с помощью которых можно будет работать с ячейками открытой книги.
В интернете куча примеров, но там все начинается с создания пустой книги, а мне надо чтобы надстройка работала с готовой экзелевской таблицей.
...
Рейтинг: 0 / 0
Работа с текущей книгой Excel в С#
    #39029302
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
activeworkbook.name 'имя активной книги
thisworkbook.name 'имя книги, в которой находится код
...
Рейтинг: 0 / 0
Работа с текущей книгой Excel в С#
    #39029315
Спасибо, но к сожалению Ваш ответ мне не дал никакой информации. Я скорее всего неясно поставил вопрос.
В прилагаемой картинке, есть надстройка "ФКУ", в этой надстройке есть кнопка "Сгенерировать № каб".
Мне надо чтобы при нажатии на кнопку "Сгенерировать № каб", из столбца "Комментарии" был извлечен номер кабинета и вставлен в
столбец "кабинет". Алгоритм извлечения номера кабинета из строки прост и мне понятен, я не могу понять как это реализовать в C# для Excelя, так как не знаю ни одного метода для работы с эл. таблицами в с#. Дайте пожалуйста толчок?
...
Рейтинг: 0 / 0
Работа с текущей книгой Excel в С#
    #39029330
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я к тому, что после создания книги все обращения внутри идут по activeworkbook, Листу, ячейке и тд., т.е. вы вполне можете пользоваться:

В интернете куча примеров, но там все начинается с создания пустой книги, а мне надо чтобы надстройка работала с готовой экзелевской таблицей.
...
Рейтинг: 0 / 0
Работа с текущей книгой Excel в С#
    #39029342
T1gRa_NT, можете привести простейший пример, только с самого начала , к примеру в книге при событии btn_GenerateRoomNumber_Click заменить ячейку [1,1] листа 1 текстом "abc"?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
using Microsoft.Office.Tools.Ribbon;
using Excel=Microsoft.Office.Interop.Excel;

namespace ExcelAddIn1
{
    public partial class rbn_FKU
    {

        
        private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
        {
         
        }

        private void btn_GenerateRoomNumber_Click(object sender, RibbonControlEventArgs e)
        {
           


        }
    }
}
...
Рейтинг: 0 / 0
Работа с текущей книгой Excel в С#
    #39029381
Написал по быстрому код, но при нажатии на кнопку, выходит ошибка отладки на строчке MessageBox.Show: "Ссылка на объект не указывает на экземпляр объекта". Подскажите пожалуйста, где ошибка?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
using System.Windows.Forms;
using Microsoft.Office.Tools.Ribbon;
using Excel=Microsoft.Office.Interop.Excel;

namespace ExcelAddIn1
{
    public partial class rbn_FKU
    {

        
        private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
        {
         
        }

        private void btn_GenerateRoomNumber_Click(object sender, RibbonControlEventArgs e)
        {
            Excel.Application app = new Excel.Application();
            Excel._Workbook book = app.ActiveWorkbook;
            Excel.Worksheet sheet = app.ActiveSheet;
            MessageBox.Show(string.Format("{0}",sheet.Cells[1, 1].ToString()));
        }
    }
}
...
Рейтинг: 0 / 0
Работа с текущей книгой Excel в С#
    #39029438
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожаление C# не изучал, но по правилам VBA
MessageBox.Show(string.Format("{0}" , sheet.Cells[1, 1].ToString()));

На месте выделенной запятой, должна быть точка.
...
Рейтинг: 0 / 0
Работа с текущей книгой Excel в С#
    #39029441
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Работа с текущей книгой Excel в С#
    #39029484
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
T1gRa_NTНа месте выделенной запятой, должна быть точка.это что еще за бред?

Карманов ИгорьПодскажите пожалуйста, где ошибка?В свежесозданном экземпляре экселя активная книга и активный лист отсутствует естественно, потому sheet==null. Стоит немножко освоить отладку в Visual Studio
...
Рейтинг: 0 / 0
Работа с текущей книгой Excel в С#
    #39029614
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор, видимо, немножно завис... погуглил для него
http://www.cyberforum.ru/blogs/100536/blog1471.html
...
Рейтинг: 0 / 0
Работа с текущей книгой Excel в С#
    #39029639
Нет, не завис))) Просто от компа под конец рабочей недели уже тошнит)))
Спасибо всем за советы! Завтра с утра буду пробовать ваши решения и отпишусь! ))
...
Рейтинг: 0 / 0
Работа с текущей книгой Excel в С#
    #39029892
Shocker.Pro, не подскажите как работать с текущим экземпляром?
...
Рейтинг: 0 / 0
Работа с текущей книгой Excel в С#
    #39029900
То есть с текущей книгой, с той которая открыта. В поиске много примеров, но везде код начинается с создания нового экземпляра, новых листов. Мне же надо открыть экзелевский файл и по нажатию кнопки производить действия с данными открытого файла.
...
Рейтинг: 0 / 0
Работа с текущей книгой Excel в С#
    #39029901
Shocker.Pro, всё, благодаря Вашей ссылке нашел решение! Спасибо!
Может кому будет интересно:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
private void btn_GenerateRoomsNumbers_Click(object sender, RibbonControlEventArgs e)
        {
            Excel.Application app = null;
            
                app = System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application")
                    as Excel.Application;
           
            app.Visible = true;
            Excel.Worksheet sheet = app.ActiveSheet;
            sheet.Cells[1, 1] = "vfdgfd";


        }
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Работа с текущей книгой Excel в С#
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]