|
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
|
|
Чтение/запись в Excel с COM OLE C++24.01.2019, 21:21. Показов 59195. Ответов 71
Метки нет (Все метки)
Здравствуйте,
Подскажите пожалуйста, есть ли у кого пример кода чтения и записи данных из/в откртый ексель файл с помощью COM/OLE на чистом С++. Есть микрософтовский пример: https://support.microsoft.com/... -or-import Он создает ексель файл и записывает в него данные, но как записать данные в уже открытый ексель, как этот ексель файл отловить, такого примера нет, а доработать/изменить микрософтовский примера под свою задачу, для меня на данный момент, к сожалению совершенно не возможно, настолько там все сложно. Может кто нибудь делал нечто подобное.
0
|
|
| 24.01.2019, 21:21 | |
|
Ответы с готовыми решениями:
71
Cpp builder-Ole-Excel. WideString пишет в ячейку Excel минус перед нулем Общение с Excel через OLE
|
|
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
|
|||||||||||
| 22.02.2019, 20:18 [ТС] | |||||||||||
|
Простым опытным путем выяснил, что:
0
|
|||||||||||
|
Модератор
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
|
|
| 22.02.2019, 20:23 | |
|
Optimus11, способ плохой. Сделайте то что хотите в VBA - там можно и список функций и свойств посмотреть и справку по ним почитать - потом перенесите в C++
0
|
|
|
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
|
||||||
| 22.02.2019, 20:29 [ТС] | ||||||
|
Прошу прощение, решил самым простым способом:
PS: Мне смотреть формат ячейки ексель нужно для того, что, когда я "читаю" значения из екселя в виде текста BSTR и если в этот момент в ясейке ексель находится не текст, а число, то происходит краш приложения, поэтому и хочу опредеять формат ячейки, если текстовый, то применять BSTR, если числовой, то LONG, а потом уже ковентировать в string/
0
|
||||||
|
Модератор
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
|
|||||||||||
| 23.02.2019, 21:09 | |||||||||||
Сообщение было отмечено Optimus11 как решение
Решение
Optimus11, еще раз - это плохой способ - просто потому что значение хранимое в ячейке это совсем не формат ячейки. как быть?
1) запускаете Excel 2) включаете запись макроса 3) делаете нужные вам действия, например, устанавливаете формат ячейки в текстовый 4) выключаете запись макроса 5) идете в VBA (Alt + F11), открываете модуль в который записался макрос и читаете его содержимое, у меня оно примерно такое:
Добавлено через 1 час 25 минут Optimus11, если проблема именно в том что не понятно что лежит в ячейке то можно поступать как то так
1
|
|||||||||||
|
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
|
|
| 27.02.2019, 21:29 [ТС] | |
|
vxg, Огромное спасибо! Это прям, то что нужно.
0
|
|
|
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
|
||||||
| 05.03.2019, 19:38 [ТС] | ||||||
|
Здравствуйте,
Не могу разобраться, как можно выбирать рабочий лист екселя, а не только использовать активный ? Есть из msdn`овского примера, вот эти строки:
Но, какая строка в autowrape, куда все эти параметры передаются, может отвечать за выбор нужно листа, а не активного, что то вообще ни как не могу понять.
0
|
||||||
|
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
|
|||||||||||
| 06.03.2019, 13:23 [ТС] | |||||||||||
|
Решено добавлением еще одно параметра в AutoWrap:
Но, я совершенно не понимаю, как это работает. Autowrap - это функция, которая, если я правильно понимаю принимает в себя 5 параметров, но если смотреть, то Name_sheet - это 6ой параметр, как он туда тогда передается ?:
0
|
|||||||||||
|
Модератор
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
|
|
| 06.03.2019, 18:17 | |
|
Optimus11, есть такая штука «функции с переменным количеством аргументов»
0
|
|
|
Модератор
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
|
||||||
| 09.03.2019, 08:02 | ||||||
|
Optimus11
0
|
||||||
|
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
|
|||||||||||
| 18.01.2020, 08:59 [ТС] | |||||||||||
|
Здравствуйте,
Подскажите пожалуйста, вот есть к примеру:
Но вопрос в другом, вот теперь есть к примеру:
И вот вопрос, как сказать екселю, чтобы он данный ему массив data_unicode.c_str() - воспринимал как набор байт юникода и преобразовывал в символы юникод, а не по умолчанию в ascii ?
0
|
|||||||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||||||
| 18.01.2020, 11:12 | |||||||
1
|
|||||||
|
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
|
|||
| 18.01.2020, 11:25 [ТС] | |||
|
И буковка L если я правильно понимаю преобразует ascii символ или строку в utf16. Есть текстовый txt документ , в нем соотвесвенно ест текст в кодировке utf8, я его считывают getline'ом в string, и с помощью обертки COM записываю в ексель, но записываются абракадабры. Вопрос как записать тонда чтобы были нормальные символы ?
0
|
|||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||
| 18.01.2020, 11:41 | |||
|
Добавлено через 2 минуты В общем, там надо будет по-любому конвертировать в юникод-строку, BSTR.
1
|
|||
|
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
|
||
| 18.01.2020, 11:51 [ТС] | ||
|
0
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 18.01.2020, 15:35 | ||
|
Она преобразовывает именно в то, что нужно передавать в excel. Или тебе не это надо?
1
|
||
|
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
|
||
| 18.01.2020, 15:56 [ТС] | ||
![]() Я не совсем тогда понимаю, как это функция работает, как я понял на вход она принимает массив чаров в стиле строки Си, а на выходе то, что она выдает ?
0
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||||||
| 18.01.2020, 16:11 | |||||||
Сообщение было отмечено Optimus11 как решение
Решение
1
|
|||||||
|
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
|
|
| 18.01.2020, 17:43 [ТС] | |
|
0
|
|
|
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
|
|
| 23.01.2020, 21:34 [ТС] | |
|
Спасибо!
Все это работает, но я уже голову сломал, не могу, откудато в появляется после преобразованного чимвола мусор. Причем муссор появляется не в буффере, потому как его размер просто ограничен ровно тем каюоличеством, которые нудны по сисвол utf16. Мусор появляется уже в екселе почему то.
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 23.01.2020, 21:39 | |
|
0
|
|
| 23.01.2020, 21:39 | |
|
Помогаю со студенческими работами здесь
40
Чтение из Excel в StringGrid Работа с БД SQLite 3: чтение, запись
Запись и чтение Excel Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|