Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

C++: COM, OLE, ActiveX

Войти
Регистрация
Восстановить пароль
 
Simply me
235 / 31 / 2
Регистрация: 05.05.2012
Сообщений: 309
Завершенные тесты: 1
#1

Работа в Excel из VS - C++ COM

31.05.2016, 15:15. Просмотров 654. Ответов 10
Метки нет (Все метки)

Добрый день!
Пишу программу в Visual Studio. В программе создаю экселевский файл. В него программно записываю данные. Можно теперь с помощью COM & OLE что-нибудь поменять в этом файле: значение ячейки, цвет, шрифт, фон? Приведите, пожалуйста, пример кода, как подключиться и как что-нибудь простое поменять в excel. Несколько лет назад использовала OLE в билдере. Там вроде вообще несложно было. А по VS не могу ничего найти.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2016, 15:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа в Excel из VS (C++ COM):

Работа с Excel из C++ - C++
Вообщем VB мне не понравился, если кто то может помочь как работать в C/C++ в Exel? Я новичок! просьбы быть доброжелательными :) Мир вам.

Работа с Excel - C++ COM
У программы есть файл. Нужно чтобы можно было записать из файла excel данные в этот файл и наоборот из этого файла в файл excel. Как и то и...

работа с excel таблицами - C++ COM
есть вот такая таблица https://docs.google.com/spreadsheet/lv?key=0AsDL8HE-bGDVdFFVWlIzbzQ5RFJJZGFyQ25xZmFYa0E&toomany=true#gid=12 ...

.NET 3.x Работа с документами Excel без Microsoft.Office.Interop.Excel - C#
всем добрый день все дело в том что для своих программ я использую БД Excel но! однако не все устанавливают на компьютере Office, да и...

Работа с Excel (нет доступа к пространству имен Excel) - C#
Здравствуйте! У меня проблема в том, что я делаю все так как там, но выдает ошибку в строчках на слова Excel, например: ...

Работа с Excel через Microsoft.Office.Interop.Excel - Visual Basic .NET
Необходимо реализовать програмку взаимодействующую с Excel в режиме реального времени. Проблем несколько: 1. Как сделать так,...

10
vxg
Модератор
3169 / 1972 / 221
Регистрация: 13.01.2012
Сообщений: 7,577
31.05.2016, 15:35 #2
из вот этого
Цитата Сообщение от Simply me Посмотреть сообщение
Пишу программу в Visual Studio. В программе создаю экселевский файл. В него программно записываю данные.
лично для меня следует что вы уже знаете как
Цитата Сообщение от Simply me Посмотреть сообщение
что-нибудь поменять в этом файле
0
Simply me
235 / 31 / 2
Регистрация: 05.05.2012
Сообщений: 309
Завершенные тесты: 1
31.05.2016, 17:16  [ТС] #3
Нет)
Для этих манипуляций я использовала стандартные функции для работы с файлами: fopen_s, fprintf. Просто в имени файла искусственно указала расширение '.xls'.
Поэтому не могу считать, что умею работать с excel из VS.
0
vxg
Модератор
3169 / 1972 / 221
Регистрация: 13.01.2012
Сообщений: 7,577
31.05.2016, 17:29 #4
Simply me, вы знаете как писать в xls файл напрямую???? снимаю шляпу. относительно простой модификации через COM можно почитать тут
1
Simply me
235 / 31 / 2
Регистрация: 05.05.2012
Сообщений: 309
Завершенные тесты: 1
31.05.2016, 17:54  [ТС] #5
Спасибо, постараюсь разобраться.

Не по теме:

Цитата Сообщение от vxg Посмотреть сообщение
вы знаете как писать в xls файл напрямую????
Не понимаю, почему Вы считаете, что это сложно.
C++
1
2
3
4
5
6
FILE *f;
filename="1.xls";
fopen_s(&f, filename);
fprintf(f, "%s\t %s\t \n", cell11, cell12);
fprintf(f, "%s\t %s\t \n", cell21, cell22);
fclose(f);

0
vxg
Модератор
3169 / 1972 / 221
Регистрация: 13.01.2012
Сообщений: 7,577
31.05.2016, 18:05 #6
Simply me, и excel ЭТО открывает)?
0
Simply me
235 / 31 / 2
Регистрация: 05.05.2012
Сообщений: 309
Завершенные тесты: 1
31.05.2016, 18:22  [ТС] #7
vxg, да) Ну сначала выдаёт какое-то сообщение типа ругательства, не помню текст, а потом открывает.
0
vxg
Модератор
3169 / 1972 / 221
Регистрация: 13.01.2012
Сообщений: 7,577
31.05.2016, 18:28 #8
Simply me, если вы почитаете что он пишет то там скорее всего "файл не является файлом excel или поврежден, открыть полюбому как текст? выберите кодировку" так что вы не пишете файл excel не обольщайтесь
0
Simply me
235 / 31 / 2
Регистрация: 05.05.2012
Сообщений: 309
Завершенные тесты: 1
31.05.2016, 18:46  [ТС] #9
Уточню текст сообщения, когда буду на работе. Выбрать кодировку не просит.

Цитата Сообщение от vxg Посмотреть сообщение
так что вы не пишете файл excel
Не знаю, смотря по какому критерию определять, является ли файл экселевским. Расширение xls, excel открывает.

Так-то я не против по-другому и создавать файл, и записывать в него данные, и редактировать)) Просто не знаю, как это проще сделать. В билдере, помню, вообще просто было.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <comobj.hpp>
#include<comobject.h>
#pragma link "Excel_2K_SRVR"
Variant  Application,Books,Book,Sheets,Sheet,Cells,Cell, Chart, Charts;
  Application=GetActiveOleObject("Excel.Application");
  Books = Application.OlePropertyGet("Workbooks");
  Book = Application.OlePropertyGet("ActiveWorkbook");
  n=Application.OlePropertyGet("ActiveSheet").OlePropertyGet
  ("Cells", 1, "B").OlePropertyGet("Value");
 //Диаграмма в Excel
  Chart=Application.OlePropertyGet("Charts").OleFunction("Add");
  Chart.OlePropertySet("ChartType",72);
  Chart.OleProcedure("SetSourceData",Sheet.OlePropertyGet
  ("Range",Sheet.OlePropertyGet("Cells",2,8),
  Sheet.OlePropertyGet("Cells",2,28))) ;
 //Настройка диаграммы
  //Расположение
  Chart.OlePropertySet("Top",550);
  Chart.OlePropertySet("Left",50);
  //Заголовок
  Book.OlePropertyGet("ActiveChart").OlePropertySet("HasTitle",true);
  Chart=Book.OlePropertyGet("ActiveChart").OlePropertyGet("ChartTitle");
  Chart.OlePropertyGet("Characters").
  OlePropertySet("Text","Распределение значений NPV");
Может, есть что-то аналогичное в VS?
0
vxg
Модератор
3169 / 1972 / 221
Регистрация: 13.01.2012
Сообщений: 7,577
31.05.2016, 18:54 #10
Simply me, это не xls файл по своему внутреннему формату. excel вам точно так же может открыть любой файл. Один из способов делать то что вы хотите в VS я вам написал - см ссылку
0
Simply me
235 / 31 / 2
Регистрация: 05.05.2012
Сообщений: 309
Завершенные тесты: 1
31.05.2016, 18:58  [ТС] #11
Да, vxg, Вы правы)) Не тянет на эксель.
0
Миниатюры
Работа в Excel из VS  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2016, 18:58
Привет! Вот еще темы с ответами:

Работа с Excel. Суть: Если номер строки в Excel четный тогда объеденяем эту ячейку с последующей. - Delphi
Здравствуйте. Помогите, пожалуйста .Я вот в Delphi осуществляю работу с документов в Excel, как я могу записать, чтобы выполнялся алгоритм:...

Большая работа с Excel (передача в него данных, построение графиков, дозапись, создание нового файла Excel) - C#
Всем участниками большой привет. Снова нужна помощь. Что имеем: -Имеем форму во вложении. на ней есть 30 нужных нам текстбоксов,...

Экспорт в Excel: Прекращена работа программы "Microsoft Excel" - C#
Файл сохраняется успешно, но поле строки excelApp.Quit(); Появляется окно ошибки Excel: Прекращена работа программы &quot;Microsoft Excel&quot;. ...

работа с excel - Visual Basic .NET
доброго времени. столкнулся с проблемой загрузки данных из excel. есть книга с листами. на каждом листе разное количество ячеек с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Yandex
Объявления
31.05.2016, 18:58
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru