Передача ссылки на массив в С# | |
---|---|
boba Автор Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
Собственно давно про это думал
В фоксе для быстрой передачи данных из курсора мы sql запросом переносим их в массив. В ексел отдаем сразу область данных с помощью передачи ссылки на массив. У меня написана к этому методу на фоксе целый класс, который делает оптовое форматирование в ексел, ( выравнивание влево-вправо), перенос строки при переполнении, задание шрифта итд Все это оптом на целые области ячеек. Очень хочу сделать такой же класс на Си 2 Вопроса 1 как результаты датасет перенести в массив 2 как отдать диапазону ячеек ексела ссылку на этот массив. |
Re: Передача ссылки на массив в С# | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
> В ексел отдаем сразу область данных с помощью передачи ссылки на массив. У меня написана к этому методу на фоксе целый класс, который делает оптовое форматирование в ексел, ( выравнивание влево-вправо), перенос строки при переполнении, задание шрифта итд
Как вы это делаете в процессе "передачи ссылки на массив"? Если этим способом:
Исправлено 2 раз(а). Последнее : of63, 25.03.19 20:32 |
Re: Передача ссылки на массив в С# | |
---|---|
ssa Сообщений: 12999 Откуда: Москва Дата регистрации: 23.03.2005 |
Ссылкой на массив переносятся данные, все остальное стандартными способами. Володя просто неточно выразился.
------------------ Лень - это неосознанная мудрость. |
Re: Передача ссылки на массив в С# | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
ssa, А что Володя хотел? В Си-шарпе проделать подобное?
|
Re: Передача ссылки на массив в С# | |
---|---|
boba Автор Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
Вроде сделал.
В примерах на С шарп везде пишут get_range На деле это на многих компах не работает. Нужно просто range Причем, при первичной сборке проекта никакой ошибки в строке с get_range не дает, только при запуске валится на ней на необработанное исключение. Еще кучу хрени огреб. При чтении области из Ексел таким способом при присвоении двух мерному строковому массиву Range("A1:J10").Value не понимает, считая это не массивом, а объектами. Неявное преобразование тоже не работает. И передача ссылки на это через функцию -тоже нет. Нашел на Инет примеры. Пришлось писать еще кучу кода. Просил коллегу посмотреть, у него вообще только Range("A1:J10").formula срабатывает. При этом до написания кода скачал штук 20 готовых примеров с Инет, на деле ни один чисто не работал. Пока делал, сломал работу там с Оракл. Перестало понимать сборку oracle.dataaccess.client Сижу, разбираюсь, как переписать эту часть на factory На Фоксе уже бы неделю назад все написал. Если выберусь из ошибок, всю работу с Ексел помещу как в Фоксе в отдельный класс. |
Re: Передача ссылки на массив в С# | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Интеропы то штатные к экселю используются, или генеришь заново?
А вообще "работать с эксель" - тупиковый путь. Либо какой генератор создающий файлы нужного формата (к сожалению обычно они не бесплатны), либо вообще xml с данными формировать и в эксель затягивать. ------------------ WBR, Igor |
Re: Передача ссылки на массив в С# | |
---|---|
boba Автор Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
interopt штатный
На деле можно все сделать, и работает. Просто мне сначала казалось, что фоксовый код пойдет практически 1=1 Это оказалось не верно. Почему, не совсем понимаю. Объектная модель Ексел ведь одна и та же. Сейчас это пытаюсь приладить в простую задачу. Есть фоксовая форма , которая умеет вызывать 26 Оракловых процедур с refcursor Результата показывается в Грид и может быть выведен в Excel Число колонок курсора и поля для процедур разные. Вот все это и пытаюсь переделать в Студио. На деле результирующий Ексел шаблон содержит более 100 страниц, иногда его слегка меняют молча сверху. На Фоксе есть анализатор отловли таких изменений и настройка на них так, чтобы особо процедуры Оракл не переписывать. Или переписывать по минимум. Это тоже все придется на Студио переделать. Поэтому нужно не только заполнять Ексел, но и читать его, держать текущую структуру в таблице. |
© 2000-2024 Fox Club  |