Excel

Excel - Сообщения

#1 Опубликовано: 13.08.2010 10:40:46
alexant

alexant

0 сообщений из 21 понравились пользователям.

Группа: User

Уважаемые разработчики!

Я, как и все, читающие это сообщение, люблю SMATH.

Но Excel - отличная программа!

Мне, как инженеру, часто приходиться выбирать коэффициенты из нормативных таблиц.
В экселе построил на многие таблицы отличные выборки.

Нужно.. нет: очень хочется, чтоб...

smath страничка с некими входящими данными выполняла запрос в excel файл, и возвращала некий результат.

К слову, у меня есть табличка, с 4мя ячейками для входящих данных, и с определенной также ячейкой, где хранится результат.
И много таких таблиц.

Я например вижу такой вид запроса (не примите меня за цыпленка, который курицу учить пытается) :
запрос(имя екзель-файла,
вектор-матрица-первого-входящего-параметра[3]("Имя листа" или номер листа, "имя ячейки" или ее координаты, имя переменной),
[еще возможные вектор-матрицы входящих параметров],
вектор-матрица-результата[2]("Имя листа" или номер листа, "имя ячейки" или ее координаты) )

По-моему будет очень полезна и популярна..

Желаю даже принять участие и поспособствовать!
Жду коментариев..
#2 Опубликовано: 13.08.2010 11:14:14
alexant

alexant

0 сообщений из 21 понравились пользователям.

Группа: User

Что-то я промахнулся.
Прошу перенести в "предложения".
Спасибо.
#3 Опубликовано: 13.08.2010 11:17:24
Andrey Ivashov

Andrey Ivashov

2269 сообщений из 3729 понравились пользователям.

Группа: Super Administrator

Здравствуйте.

Сделать плагин, который бы имел две функции: 1) получение данных из ячейки Excel; 2) запись данных в ячейку Excel - не слишком сложно. Сегодня попозже попробую его создать. Результаты опубликую здесь.

С уважением, Андрей Ивашов.

P.S.: Тему перенёс в "Предложения".
#4 Опубликовано: 14.08.2010 10:03:18
Andrey Ivashov

Andrey Ivashov

2269 сообщений из 3729 понравились пользователям.

Группа: Super Administrator

Текущий статус:


Примечания:
Для работы с Excel файлами не требуется установка Excel или любого другого компонента пакета Microsoft Office.
Высокая производительность за счёт того, что COM не используется.
#5 Опубликовано: 14.08.2010 14:12:46
Andrey Ivashov

Andrey Ivashov

2269 сообщений из 3729 понравились пользователям.

Группа: Super Administrator

Плагин готов к тестированию/использованию:
ExcelCollab.0_89.Plugin.Bin.zip (Дата: 14.08.2010. Размер: 49,34KB) - * Для копирования .dll файла из архива в папку "plugins" в директории, куда установлена SMath Studio.



С уважением, Андрей Ивашов.
#6 Опубликовано: 14.08.2010 18:40:18
alexant

alexant

0 сообщений из 21 понравились пользователям.

Группа: User

Спасибо, Андрей!
Как всегда оперативное решение!
А вот без ком - так даже интересно, как вы этого добились.

Функции работают, но:

Есть следующие замечания:
1. После exportCell формулы заменяются на константные значения.
То-есть: создал в таблицу со значением 5 в ячейке А1 и с формулой в ячейке А2: А1*2 (что выдало мне 10). Сохранил, закрыл.
Делаю exportCell в А1 значение допустим 3, получаю результат 1. Проверяю таблицу:
в А1 стоит значение 3, а в А2 стоит та же 10ка, причем формулы там больше нет.

2. С форматом .xlsx не работают...

У меня офис 2010 и последний smath.

ПС:
А как насчет того, чтобы внедрить таблицу как оле-объект в сматн-файл.
Тут конечно не всегда нужно: мне удобнее иметь один файл.xls с таблицами СНиПов и вокруг него
несколько сматн-решений, ссылающихся на эту таблицу как на БД.
А таблицу я для наглядности картинкой вставляю.
Но кому-то может быть удобнее иметь таблицу внутри сматн-файла.
Какие у вас по этому поводу размышления?

С благодарностями и уважением,
Александр
#7 Опубликовано: 14.08.2010 20:24:31
Andrey Ivashov

Andrey Ivashov

2269 сообщений из 3729 понравились пользователям.

Группа: Super Administrator

С COM interop есть большая проблема производительности - к примеру получение значения одной ячейки занимает в среднем около секунды, что, конечно, не допустимо. Именно потому пришлось искать альтернативное решение, а с альтернативами приходят и неожиданности вроде пропадания формул после изменения листа. Нашёл так же это: http://www.gemboxsoftware.com/Spreadsheet/Pricelist.htm - однако там и цены зашкаливают. Самому же заниматься разбором экселевских файлов, естественно, некогда да и бессмысленно.

По OLE планов пока нет. Вернусь к этому после того, как реализую возможность создавать контролы (элементы управления) на листе с помощью плагинов.

P.S.: С созданным плагином, как минимум, теперь можно считывать данные из xls файлов. Xlsx, возможно, скоро тоже будут поддерживаться.

С уважением.
#8 Опубликовано: 15.08.2010 07:40:47
build_your_web

build_your_web

4 сообщений из 127 понравились пользователям.

Группа: User

Начиная с Office 2007 используется OXML.
Также ms предоставляет библиотеки, которые работают с oxml.

Года два назад пробовал, всё работало.

Вобщем предлагаю использовать этот подход для считывания новых файлов.
#9 Опубликовано: 15.08.2010 08:53:20
alexant

alexant

0 сообщений из 21 понравились пользователям.

Группа: User

К OXML проще доступ (открыта архитектура файла).
Может быть действительно пропустить стареющий .xls
и попробовать написать рабочий плагин для .xlsx.

Ведь вся прелесть этих функций в том, что в таблице производится своя обработка.
#10 Опубликовано: 15.08.2010 14:16:21
Mikka

Mikka

36 сообщений из 206 понравились пользователям.

Группа: User

Плагин хорош, а можно ли добавить поддержку именованных диапазонов(хотя бы для чтения). Т.е. например у меня есть таблица, я ее называю например "Таблица", а потом обращаюсь к ней, и считываю например 1 ячейку 2 колонки диапазона "Таблица".
Не официальный справочник http://sites.google.com/site/mikkhalichlab/ jabber конференция smath@conference.jabber.ru
  • Новые сообщения Новые сообщения
  • Нет новых сообщений Нет новых сообщений