![]() |
|
Модераторы: gambit |
![]()
|
|
| n00d13 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 26.7.2005 Репутация: нет Всего: нет |
Есть софтина выбираюшие данные из бд на MsSQL через ADO.NET
А вот как сделать чтобы она эти данные могла загонять в фаил *.doc/*.xls Вопрос как вот реализовать такую вешЧь с помошью C#??? Спасибо. |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 5 Всего: 93 |
При помощи Excel (или Word) automation, естественно Только для этого, к сожалению, нужен установленный офис. ЗЫ: Я бы рекомендовал использовать XML совместно с XSLT для создания читаемых документов на основе выборок. -------------------- Да. Именно так. |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 5 Всего: 93 |
Если пользуемся Visual Studio .NET
То жмём правой кнопкой на References проекта -> Add Reference... Вкладка COM Там выбираем Microsoft Excel xx Object Library (где xx - версия библиотеки, для Excel 2003 - 11.0) Двойной щелчок по ней, жмём ОК. Теперь в проекте пишем что-то вроде
В итоге в файле C:\test.xls будет таблица умножения Внимание: Если выкидывает исключение Access Denied, то делаем следующие манипуляции: Запускаем из командной строки: dcomcnfg В нём находим Microsoft Excel Application (в WinXP оно в Component Services\Computers\My Computer\DCOM Config) Правой кнопкой -> Properties Вкладка Security -> Группа Access Permissions Устанавливаем Customize, жмём Edit добавляем своего пользователя с флажком Allow. Это сообщение отредактировал(а) Дрон - 26.7.2005, 17:09 -------------------- Да. Именно так. |
|||
|
||||
| master of universe |
|
|||
|
Unregistered |
Не надо так извращаться. Пишешь всё в HTML файлик потом открываешь вордом экселем браузером любым другим офисным пакетом. Эксель отлично понимает таблицы. Забудь про ком и совместимости версий оффиса у клиентов.
|
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Изврат, имхо. Эксель стопудово понимает только CSV-формат с разделителями, либо свой "родной" формат. -------------------- ![]() |
|||
|
||||
| n00d13 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 26.7.2005 Репутация: нет Всего: нет |
10x всем за ответы!
-- 2Дрон, А можно код с комментами ? зы. НУ ньюб я. 8) |
|||
|
||||
| Дрон |
|
||||||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 5 Всего: 93 |
Странные для новичка задачи ты ставишь Как создать проект и сделать выборку из базы ты, надеюсь, знаешь?
По хорошему надо MSDN почитать по этому поводу, т.к. реально я этот код набросал методом тыка и детали объяснить не могу. ЗЫ: Я бы всё-таки не извращался а сделал так:
к результату выборки добавил бы нужный xsl и получил бы готовый документ, который можно смотреть хоть в Internet Explorer, хоть в Microsoft Word -------------------- Да. Именно так. |
||||||
|
|||||||
| n00d13 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 26.7.2005 Репутация: нет Всего: нет |
ДА.Это сделал. Тогда можно мушшина я вас дальше попытаю? Вопрос в том. Если вы знаете какой код минимизирует и ресторит приложение. А то закрывать как занем а вот такие рюшечки незнаем. Ааа ещё как заставлять приложение сворачивать в трей? Иконка то делаеться а как сворачивать. Незнамо 8) Зарание благодарю. |
|||
|
||||
| mr.DUDA |
|
||||||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Модератор: Пожалуйста, один топик - один вопрос.
this.WindowState = FormWindowState.Minimized; и this.WindowState = FormWindowState.Normal;
Просто делай this.Visible = false при сворачивании формы, и this.Visible = true при клике по иконке в трее. Чтобы узнать о том, что форма свёрнута, подписывайся на событие Resize:
-------------------- ![]() |
||||||
|
|||||||
| n00d13 |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 26.7.2005 Репутация: нет Всего: нет |
2 Дрон,
Всё работает только пришлось сделать так
По другому не хотел бегать. А можешь объяснить этот момент.
Что тут каr дышит,почему работает? Просто хотел прикрутить сюда чтобы он высасывал всё из MsSQL через адаптЕр. зы.Кста полазил на MSDN там всё по другому чем у тебя но тоже работает.(странно 8) 2 Модератор, Извиняюсь.Просто тут отвечают на мои глупости я подумал может это временно и завтро не будут вот и оплошал. Это сообщение отредактировал(а) n00d13 - 28.7.2005, 14:28 |
||||
|
|||||
| Дрон |
|
||||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 5 Всего: 93 |
Microsoft.Office.Interop.Excel -- это вроде от других версий ёкселя. Но разницы никакой.
Самая интересная строчка тут:
В ней в ячейку на i-й строке j-м столбце записывается значение i*j. Пусть у тебя есть DataTable с именем tbl. Чтобы перенести её на лист екселя тебе нужно написать что-то вроде (не проверял, но по-идее так):
-------------------- Да. Именно так. |
||||
|
|||||
| n00d13 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 26.7.2005 Репутация: нет Всего: нет |
2 Дрон,
10x Всё пашит только пришло дополнительно ДатаТаблю делать.(У мну просто были дата сорсы с дбГридо) зы.Чувак я твой фанат! зыы.Ещё раз спасибо! |
|||
|
||||
| Дрон |
|
||||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 5 Всего: 93 |
Подниму тему, т.к. нашёл в своём коде недочёт
Нужно писать не так:
а вот так:
Источник: http://blogs.msdn.com/ptorr/archive/2004/2/5.aspx -------------------- Да. Именно так. |
||||
|
|||||
| Papirus |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 298 Регистрация: 19.4.2005 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Я наступил на эти грабли, когда сделал такую ссылку. У меня Офис 2003 - у пользователей ХР. Облом. Удали ссылку на EXCEL из References, использовал такое объявление (пардон, что ВБ) и заработало у всех независимо от версии Офиса.
Прикиньте еще такой момент. В прежних версиях ADO для вставки набора записей из рекордсета в EXCEL достаточно было одной строки (оч быстро работает)
где rs - открытый рекордсет. Точно также в массив ячеек можно вставить данные из массива одной командой, определив предварительно область вставки в точности совпадающей с размерностью и количестьвом элементов массива. Вероятно из таблицы датасета тоже можно, но не пробовал - нет пока потребности. Добавлено @ 09:48 CopyFromRecordset пардон так правильно |
||||||||
|
|||||||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |