91 / 3 / 2
Регистрация: 19.05.2016
Сообщений: 38
1

Ошибка при работе с Excel

21.05.2016, 18:52. Показов 2985. Ответов 26
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Определяю количество занятых ячеек (ячеек с информацией) в столбце файл-Excel, точнее номер последнего занятого столбца. При выполнении следующей команды:
C++
1
2
3
4
5
   //Активация последней известной ячейки
   v_Var_Sheet.OlePropertyGet("Cells").OlePropertyGet("SpecialCells", 11).OleProcedure("Activate");
 
   //Узнать номер последнего известного столбца
   int i_ColLast = v_Var_Excel.OlePropertyGet("ActiveCell").OlePropertyGet("Column");
возникает ошибка при выполнении первой строки, если лист в Excel защищен. На незащищенном листе все нормально. Что делаю не так? может есть другой метод?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.05.2016, 18:52
Ответы с готовыми решениями:

Ошибка при работе с Excel
ошибка Добавлено через 27 секунд private void button3_Click_1(object sender, RoutedEventArgs...

Ошибка при работе с Excel
Программа взаимодействует с экселем. Если я правильно понял, у меня не подключена какая-то...

Ошибка при работе с excel
Нужно прочитать значение из ячейки. Например 1,1 (A1). Возникает ошибка --------------...

Странная ошибка при работе с Excel
Пытаюсь создать Excel файл и записать в него ячейки но при компиляции программы получаю совершенно...

26
91 / 3 / 2
Регистрация: 19.05.2016
Сообщений: 38
23.05.2016, 10:32  [ТС] 21
Author24 — интернет-сервис помощи студентам
Нет. У меня есть много файлов. Необходимо их подгружать. У каждого файла свой формат (количество характеристик) на одну и ту же позицию. Необходимо автоматизировать. Вот поэтому именно по одному столбцу определение не подойдет. + есть позиции, у которых некоторые характеристики могут отсутствовать.
0
Модератор
3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,419
23.05.2016, 10:40 22
Цитата Сообщение от akrufar Посмотреть сообщение
У каждого файла свой формат
какой бы формат не был у файла он известен. к примеру - у меня несколько файлов в каждом из которых список товаров конкретного магазина. списки конечно же разные но они имеют сходную структуру - первый столбец, первая строка заголовок, если строка пустая значит список кончился. вот я так и делаю - открываю файл и перебираю строки занося их в массив. как только встретил пустую - закрываю файл
1
91 / 3 / 2
Регистрация: 19.05.2016
Сообщений: 38
23.05.2016, 12:48  [ТС] 23
Со столбцами понятно. Со строками сложнее. Не все характеристики бываю заполнены. Даже тоже наименование иногда отсутствует у некоторых поставщиков, поэтому может выпасть часть информации+при проверки каждого столбца и каждой строки уйдет большее время, чем если выделить сразу самую последнюю заполненную ячейку. У меня вот возникла идея, может быть с защищенного листа всю информацию копировать в новый документ и там проводить манипуляции. Не быстрее получится? + все ограничения будут сняты.

Добавлено через 1 час 58 минут
C++
1
int i_ColLast = v_Var_Excel.OlePropertyGet("ActiveSheet").OlePropertyGet("UsedRange").OlePropertyGet("Columns").OlePropertyGet("Count")
Работает отлично! Даже на защищенном листе. vxg спасибо за терпение! =)
0
Модератор
3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,419
23.05.2016, 12:58 24
Цитата Сообщение от akrufar Посмотреть сообщение
при проверки каждого столбца и каждой строки уйдет большее время
если вы их считываете в программу я не особо вижу где тут время дополнительное будет да еще и большое - оно возникнет из за if (!s.length()) break ?

Добавлено через 2 минуты
Цитата Сообщение от akrufar Посмотреть сообщение
Даже на защищенном листе
отличный выход из положения, будем знать

Добавлено через 1 минуту
на всякий случай вопрос - не нужно ли в формуле к количеству прибавлять номер столбца начала диапазона?
0
91 / 3 / 2
Регистрация: 19.05.2016
Сообщений: 38
23.05.2016, 13:33  [ТС] 25
Цитата Сообщение от vxg Посмотреть сообщение
на всякий случай вопрос - не нужно ли в формуле к количеству прибавлять номер столбца начала диапазона?
Лучше делать вот так:

C++
1
2
3
4
5
6
int i_ColLast = v_Var_Excel.OlePropertyGet("ActiveSheet").
         OlePropertyGet("UsedRange").OlePropertyGet("Column") +
      v_Var_Excel.OlePropertyGet("ActiveSheet").
         OlePropertyGet("UsedRange").OlePropertyGet("Columns").
         OlePropertyGet("Count") -
      1;
Иначе если первые столбцы пустые, неверные данные на количество этих пустых столбцов будет показывать.
1
Модератор
3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,419
18.06.2016, 13:10 26
akrufar, и че)?
0
91 / 3 / 2
Регистрация: 19.05.2016
Сообщений: 38
18.06.2016, 13:16  [ТС] 27
Да не в ту тему отписался, а удалить сообщение не удалось, вот и забил 123 =) писал сюда: https://www.cyberforum.ru/com-ole/thread1765551.html
Если есть идеи, отпишись =)
0
18.06.2016, 13:16
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.06.2016, 13:16
Помогаю со студенческими работами здесь

Ошибка при работе с формулами MS Excel
Здравствуйте, столкнулся на днях с проблемой ввода формул в ячейки эл. таблицы. Суть в том, что при...

Ошибка при работе с макросами Excel
Здравствуйте! При работе в Excel с толкнулся с такой ошибкой: Compile error in hidden module:...

Странная ошибка при работе с Excel
В общем, имеется такая процедура конвертации XLS в CSV (даже не спрашивайте, зачем мне это нужно):...

Ошибка в приложении при работе с excel
Здравствуйте написал приложение! В приложении считывает данные с Excel таблицы. У меня на пк все...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как написать микросервис на Go/Golang
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C#
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru