Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Excel, позднее связывание. Копирование диапазона ячеек / 10 сообщений из 10, страница 1 из 1
27.05.2013, 10:08
    #38274291
SourLime
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel, позднее связывание. Копирование диапазона ячеек
Здравствуйте. Пишу программу на C# для работы с файлами Excel. Использую позднее связывание.
Необходимо сделать копирование больших частей таблицы из одного файла в другой. С копированием по одной ячейке программа справляется слишком долго: 2 таблицы 25х30 копируются около 8 минут, а таких таблиц копировать придется много. Очевидно, что даже руками открыть, скопировать весь диапазон и вставить будет куда быстрее). Но как это сделать программно?

Именно для позднего связывания не нашел подобных примеров, и не понял, как переделать пример с ранним связыванием.
Выделить диапазон, в принципе, легко. Но что с ним дальше делать? Где хранить, как вставлять?

Помогите пожалуйста!
...
Рейтинг: 0 / 0
27.05.2013, 11:53
    #38274532
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel, позднее связывание. Копирование диапазона ячеек
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
object[,]
	values = { { 11, 12 }, { 21, 22 }, { 31, 32 } };

Range1 = Sheet1.GetType().InvokeMember("Range", BindingFlags.GetProperty, null, Sheet1, new object[] { "F1", "G3" });
Range1.GetType().InvokeMember("Value", BindingFlags.SetProperty, null, Range1, new object[] { values });

object[,]
	values_out;

values_out = (object[,])Range1.GetType().InvokeMember("Value", BindingFlags.GetProperty, null, Range1, null);


???
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
28.05.2013, 04:24
    #38275731
SourLime
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel, позднее связывание. Копирование диапазона ячеек
Ex_Soft,

Шикарно, все работает, как надо, почти в 70 раз быстрее:) Огромное спасибо
...
Рейтинг: 0 / 0
28.05.2013, 17:37
    #38277174
Proga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel, позднее связывание. Копирование диапазона ячеек
Ex_Soft
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
object[,]
	values = { { 11, 12 }, { 21, 22 }, { 31, 32 } };

Range1 = Sheet1.GetType().InvokeMember("Range", BindingFlags.GetProperty, null, Sheet1, new object[] { "F1", "G3" });
Range1.GetType().InvokeMember("Value", BindingFlags.SetProperty, null, Range1, new object[] { values });

object[,]
	values_out;

values_out = (object[,])Range1.GetType().InvokeMember("Value", BindingFlags.GetProperty, null, Range1, null);


???
_________________
"Helo, word!" - 17 errors 56 warnings

почему вы всё ещё используете такую манеру работы с excel, может уже пора юзать dynamic.
Хотя там есть свои подводные камни, но так удобнее всё равно.
...
Рейтинг: 0 / 0
28.05.2013, 17:42
    #38277185
cooldeveloper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel, позднее связывание. Копирование диапазона ячеек
Progaможет уже пора юзать dynamic
Не все могут использовать .NET 4.0 и выше.
...
Рейтинг: 0 / 0
28.05.2013, 18:26
    #38277287
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel, позднее связывание. Копирование диапазона ячеек
cooldeveloperНе все могут использовать .NET 4.0 и выше.Все могут сгенерировать интеропную сборку. Хотя, зачем я это рассказываю...
...
Рейтинг: 0 / 0
29.05.2013, 11:04
    #38278059
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel, позднее связывание. Копирование диапазона ячеек
Алексей КВсе могут сгенерировать интеропную сборку.
Дык, в лом же... Ну, и
SourLimeИменно для позднего связывания...
...
Рейтинг: 0 / 0
29.05.2013, 11:24
    #38278108
gpu
gpu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel, позднее связывание. Копирование диапазона ячеек
Алексей КcooldeveloperНе все могут использовать .NET 4.0 и выше.Все могут сгенерировать интеропную сборку. Хотя, зачем я это рассказываю...
не провоцируй а то опять про Open XML SDK читать будешь
...
Рейтинг: 0 / 0
29.05.2013, 11:25
    #38278113
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel, позднее связывание. Копирование диапазона ячеек
Алексей КВсе могут сгенерировать интеропную сборку. Хотя, зачем я это рассказываю...
чреватое это занятие - генерить интеропные сборки
для MTP, например, интеропная сборка генерится криво (в маршаллинге ошибки)
...
Рейтинг: 0 / 0
29.05.2013, 13:08
    #38278321
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel, позднее связывание. Копирование диапазона ячеек
ИзопропилАлексей КВсе могут сгенерировать интеропную сборку. Хотя, зачем я это рассказываю...
чреватое это занятие - генерить интеропные сборки
для MTP, например, интеропная сборка генерится криво (в маршаллинге ошибки)Ну не без этого. В библиотеке типов Excel ошибку видел, не помню где...
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Excel, позднее связывание. Копирование диапазона ячеек / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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