Модераторы: gambit, Partizan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как экспортировать в Excel, ...заранее благодарю... 
:(
    Опции темы
a_r_e
Дата 2.11.2007, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 24.10.2007

Репутация: нет
Всего: нет



Добрый день всем!!!
Подскажите плиз, как сделать экспорт данных из Form в Excel , через кнопку, так чтобы инфа в нумерике, лейбле или текст боксе например сохранялась в такой-то ячейке в Экселе...???
Код

private void button1_Click(object sender, EventArgs e)
{
А что дальше...
}



Добавлено через 54 секунды
Я так понимаю, что надо создать шаблон в Excel???
PM MAIL   Вверх
moric83
Дата 2.11.2007, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 9.7.2007

Репутация: нет
Всего: 1



Это называется Excel Automation.
Вот http://www.codeproject.com/csharp/Simple_E..._Automation.asp
PM MAIL   Вверх
a_r_e
Дата 2.11.2007, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 24.10.2007

Репутация: нет
Всего: нет



А ArrayList обязательно, или мы можем поместить внужные ячеки Excel все что нам надо!!!
PM MAIL   Вверх
farad
Дата 2.11.2007, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 1.11.2007

Репутация: 3
Всего: 6



Цитата(a_r_e @  2.11.2007,  10:54 Найти цитируемый пост)
А ArrayList обязательно
 не обязательно. Кстати в примере от moric83, значения присваиваются конкретным ячейкам. Это годится когда нужно заполнить десяток ячеек. А если тебе нужно заполнить таблицу в несколько тысяч строк то получишь конкретные тормоза. Для экспорта в эксель лучше использовать свойство Formula объекта Range - тормозов не будет. Примерно так:
Код

private Excel.Range PutArrayToWorkSheet(Excel.Worksheet wsh, int StartX, int StartY,object[,] data)
        {
            Excel.Range rng = wsh.get_Range(
                    wsh.Cells[StartY, StartX],
                    wsh.Cells[StartY + (data.GetLength(0)-1),
                    StartX + (data.GetLength(1) - 1)]);
            rng.Formula = data;
            return rng;
        }

PM MAIL   Вверх
a_r_e
Дата 2.11.2007, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 24.10.2007

Репутация: нет
Всего: нет



Так как с кнопки открывать Excel
PM MAIL   Вверх
Lightwave
Дата 16.11.2007, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 17.2.2007

Репутация: нет
Всего: нет



1. Скачиваешь с сайта майкрософт дополнение к студии для программирования по Офис (VSTO)
2. Скачиваешь, PIA. Необходим, без него бывает не идёт, это "Бермуды".
3. 

Код

using Excel = Microsoft.Office.Interop.Excel;
using Microsoft.Office.Interop.Excel;

//Где то в коде пишешь это:
Excel.Application xl = new Excel.Application();
xl.Show(); // не уверен что именно так пишется, но там исходя из логики можно найти подходящий //метод.

PM MAIL   Вверх
AET
Дата 23.12.2007, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 13.3.2007

Репутация: нет
Всего: нет



народ нужна помащ ни как немогу разобратся с ексель как можно чтобы даныие из техбокса сохранился в ексель зарание блогодарен
PM MAIL   Вверх
izekia
Дата 23.12.2007, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 5.12.2007

Репутация: нет
Всего: 3



Lightwave, 
1. VSTO здесь не требуется, они для других задач. Вообще смутно понимаю смысл использования VSTO, даже в контексте своих задач. Жуткие тормоза.
2. PIA нужен для нормального удобочитаемого кода, а так инвокмембера еще никто не отменял.

по поводу примера кода:
Код

Activator.CreateInstance(Type.GetTypeFromProgID("Excel.Application"))

Это без использования PIA
PM MAIL   Вверх
AET
Дата 4.1.2008, 07:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 13.3.2007

Репутация: нет
Всего: нет



Привет. 
Начал изучать работу с excel 
Из коллекции COM добавил ссылку на Microsoft Excel Object Library 
далее 
везде в примерах пишут 

using Excel = Microsoft.Office.Interop.Excel;

У меня только Microsoft.Office.Core 
Соответственно не могу создать объект приложения Excel 
Чтоже ещё нужно? 
Заранее спасибо.
PM MAIL   Вверх
mr.DUDA
Дата 4.1.2008, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 24
Всего: 232



AET, где-то косяк, проверь в solution explorer-е, добавился ли reference на Microsoft.Office.Interop.Excel. Только что проверил у себя, всё нормально добавляется и неймспейс нужный на месте.


--------------------
user posted image
PM MAIL WWW   Вверх
AET
Дата 5.1.2008, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 13.3.2007

Репутация: нет
Всего: нет



Цитата(mr.DUDA @ 4.1.2008,  14:12)
AET, где-то косяк, проверь в solution explorer-е, добавился ли reference на Microsoft.Office.Interop.Excel. Только что проверил у себя, всё нормально добавляется и неймспейс нужный на месте.

втомто и дело что Microsoft.Office.Interop.Excel нету там есть только Microsoft.Office.Core 
но есть один пример для экспартирование в Ексель там ано есть и работает а мне как его дабавить зарание блогодарен
PM MAIL   Вверх
mr.DUDA
Дата 5.1.2008, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 24
Всего: 232



AET, удали Microsoft.Office.Core кнопкой Delete и добавь "Microsoft Excel (тут номер) Object Library" снова, через Add Reference...


--------------------
user posted image
PM MAIL WWW   Вверх
AET
Дата 5.1.2008, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 13.3.2007

Репутация: нет
Всего: нет



Цитата(mr.DUDA @ 5.1.2008,  13:27)
AET, удали Microsoft.Office.Core кнопкой Delete и добавь "Microsoft Excel (тут номер) Object Library" снова, через Add Reference...

уменя Microsoft Excel 11,0 Object Library  всеравно выходит только Microsoft.Office.Core  что делать
PM MAIL   Вверх
mr.DUDA
Дата 6.1.2008, 03:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 24
Всего: 232



Может есть другие COM-компоненты со словом Excel? 11-й это случайно не Office XP? И ещё, можно поискать в папке офиса файлы с расширением .TLB или .OLB и именем содержащим Excel или что-то типа того, и добавить reference на такой файл. Если при этом появится namespace Microsoft.Office.Interop.Excel - значит это то что нужно smile

З.Ы. У меня вот 2007-й офис установлен, там ничего дополнительно добавлять не нужно. В других версиях офиса может быть по-другому.


--------------------
user posted image
PM MAIL WWW   Вверх
n0rb
Дата 14.3.2008, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 28.2.2008

Репутация: нет
Всего: нет



У меня такая проблема: на моей машине стоит 2007й офис, а у заказчика 2003. Хотелось бы сделать, чтобы экспорт в Word и Excel работал всюду, но желательно без дергания методов через Reflection (наподобие Activator.CreateInstance(Type.GetTypeFromProgID("Excel.Application"))), т.к. тормоза довольно большие + это очень неудобно при разработке =/

В COM-референсах есть только 12-й офис, т.е. 2007. Насколько знаю, если у клиента 2003, то это не пройдет.
Можно ли стянуть откуда-то отдельные файлы библиотек для Office11 и бросить их, например, в папку с проектом, потом добавить? Cмогу ли я разрабатывать и тестировать проект на машине с 2007-м и заработает ли моя программа с 2003, при таких манипуляциях?

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0647 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.