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

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Кто знает Visual C++.NET помогите, Кто знает Visual C++.NET помогите 
:(
    Опции темы
Guest_Костя
  Дата 18.4.2003, 21:46 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Кто знает Visual C++.NET помогите пожалуста а то у меня проблема.
Если знаете то подскажите как в VC++.net работатьс EXEL,м.
А то например есть такая прога которая должна обнавлять прайс лист по 40 раз в день. А я даже не могу считыватьс Exel,я .Подскажите как работать с Exel,м.
  Вверх
AntonSaburov
Дата 21.4.2003, 11:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


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

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



1. Создаем новый проект в .NET.
2. В Solution Explorer (Ctrl+Alt+L) на пункте Reference щелкаем правой кнопкой мыши и выбираем "Add Reference..."
3. В диалоговом окошке "Add Reference" выбираем закладку COM и там находим Microsoft Excel.
4. Делаем Select.
5. Нажимаем OK

Теперь можно работать.
Для примера просто поднимем Excel

Код

private void button3_Click(object sender, System.EventArgs e)
{
   Excel.Application ap = new Excel.Application();
   ap.Visible = true;
}


Если глянуть в каталог bin, то можно увидеть, что созданы дополнительные dll, которые по сути являются .NET обертками вокруг нужных COM-объектов. Обычно они имеют префикс Interop.*. Например для Excel будет Interop.Excel.dll.

Для более продвинутых программистов, которые могут определить какой файл необходимо обработать можно использовать утилиту tlbimp.
Ее описание можно найти в документации.

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


Эксперт
****


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

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



а помом создаеш новую книгу и начинаеш с ячеками играться, только помоему у ячеек относительная адрессация с последней используемой


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
amonra
Дата 28.5.2003, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 28.5.2003
Где: г. Махачкала

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



У меня как то была подобная задача так я обращался к EXEL как к БД через ADO.NET только там свой провайдер. (Может поможет)
PM MAIL ICQ   Вверх
Biginr
Дата 14.10.2005, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А как открыть уже существующий фаил(Excel) для его изменения
PM MAIL ICQ   Вверх
mr.DUDA
Дата 14.10.2005, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Вот примеры:
Код

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

namespace ConsoleApplication2
{
    class TestClass
    {
        [STAThread]
        static void Main(string[] args)
        {
            // ПРИМЕР 1: как создать документ Excel

            // это значение используется для опциональных параметров
            object optional = Missing.Value;

            // создаём приложение-сервер Excel
            Excel.Application app = new Excel.Application();

            // создаём "книгу" и одну закладку
            Excel.Workbook workbook = app.Workbooks.Add(optional);
            Excel.Worksheet worksheet = (Excel.Worksheet) workbook.Sheets.Add(optional, optional, optional, optional);

            // редактируем ячейки A1...A4
            worksheet.Cells[1, 1] = "1";
            worksheet.Cells[2, 1] = "10";
            worksheet.Cells[3, 1] = "108";
            worksheet.Cells[4, 1] = "=СУММ(A1;A3)";
            
            // сохраняем книгу
            workbook.SaveAs(@"c:\1.xls", optional, optional, optional, optional,
                optional, Excel.XlSaveAsAccessMode.xlShared, optional, optional, 
                optional, optional, optional);


            // ПРИМЕР 2: как открыть документ и получить данные
            Excel.Workbook workbook2 = app.Workbooks.Open(@"c:\1.xls", optional, optional, optional,
                optional, optional, optional, optional, optional, optional, optional,
                optional, optional, optional, optional);
            Excel.Worksheet worksheet2 = (Excel.Worksheet)workbook2.Worksheets[1];

            // получаем значения из ячеек A1 и A4
            Excel.Range rangeA1 = (Excel.Range)worksheet2.Cells[1, 1];
            double valueA1 = (double)rangeA1.get_Value(Excel.XlRangeValueDataType.xlRangeValueDefault);
            Excel.Range rangeA4 = (Excel.Range)worksheet2.Cells[4, 1];
            double valueA4 = (double)rangeA4.get_Value(Excel.XlRangeValueDataType.xlRangeValueDefault);

            // в конце ОБЯЗАТЕЛЬНО выгружаем Excel
            app.Quit();
        }
    }
}




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


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


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

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



P.S. код написан в C# smile
Цитата(Guest_ @ 18.4.2003, 21:46)
как в VC++.net работатьс EXEL,м.



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


Новичок



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

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



Большое спасибо
PM MAIL ICQ   Вверх
Biginr
Дата 16.10.2005, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А как сделать тоже самое в Word
PM MAIL ICQ   Вверх
mr.DUDA
Дата 16.10.2005, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



По аналогии. Там всё должно быть понятно. Единственно нужно владеть понятиями "Document", "Selection", "Range" - обо всём можно почитать в справке по MS Word smile : Alt+F11, потом жмём F1, и ищем нужный раздел при условии что установлена справка по VBA. Либо MSDN.


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


Новичок



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

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



Подскажите что надо писать в скобках метода Open


Wo
Код

rd.Document doc=wApp.Documents.Open(//не знаю)

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


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


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

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



Вот пример:
Код
using System;
using System.Reflection;
using Microsoft.Office;

namespace ConsoleApplication1
{
    class Class1
    {
        [STAThread]
        static void Main(string[] args)
        {
            object optional = Missing.Value;

            // загружаем DOC-файл
            Word.ApplicationClass app = new Word.ApplicationClass();
            object fileName = @"c:\123.doc";
            Word.Document doc = app.Documents.Open(ref fileName, ref optional, ref optional,
                ref optional, ref optional, ref optional, ref optional,
                ref optional, ref optional, ref optional, ref optional,
                ref optional, ref optional, ref optional, ref optional,
                ref optional);

            // получаем строковое содержимое файла
            doc.Select();
            string text = app.Selection.Text;

            // заменяем содержимое файла на "123456"
            app.Selection.TypeText("123456");

            // сохраняем документ
            doc.Save();

            // выгружаем Word
            app.Quit(ref optional, ref optional, ref optional);
        }
    }
}



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


Новичок



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

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



Спасибо smile
PM MAIL ICQ   Вверх
Biginr
Дата 18.10.2005, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата
"Подскажите как задать координаты для ввода текста в AUTOCAD."

Разве здесь два вопроса?

PM MAIL ICQ   Вверх
mr.DUDA
Дата 20.10.2005, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Biginr @ 18.10.2005, 22:21)
Разве здесь два вопроса?

Уже три вопроса ! smile
Первый был про Word, второй - про Excel, а третий - по automation приложения AutoCAD. Я понимаю, что тема сходная, но тем не менее:

Модератор: Пожалуйста, один топик - один вопрос.

Просьба в последующем соблюдать правила форума.


--------------------
user posted image
PM MAIL WWW   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




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


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

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