Страница 1 из 1

Импорт данных из Excel

Добавлено: 10 янв 2017, 15:24
GT21
Как можно импортировать из .xls файла таблицу в LabVIEW? Честно искал инфу, но все что нашел, это использование Report Generation Toolkit for Microsoft Office за 600 баксов или через CSV.
Мне же надо импорт именно из .xls (приятным бонусом будет так же и из .ods). Никаких модулей, связанных с Excel через ctrl+space не нашел
LV 2008

Re: Импорт данных из Excel

Добавлено: 10 янв 2017, 15:44
Borjomy_1
Ну что вам сказать... Задача специфическая, использует не свободно распространяемые форматы. И вы еще ее хотите решить бесплатными средствами. Чем вас не устраивает csv? Сделайте макрос в экселе.

Re: Импорт данных из Excel

Добавлено: 10 янв 2017, 15:45
GT21
Borjomy_1 писал(а):Ну что вам сказать... Задача специфическая, использует не свободно распространяемые форматы. И вы еще ее хотите решить бесплатными средствами. Чем вас не устраивает csv? Сделайте макрос в экселе.
Тем, что данные мне "приходят" в экселевском. Но разве .odt не свободный?

Re: Импорт данных из Excel

Добавлено: 10 янв 2017, 15:49
dadreamer
GT21, так понимаю, что принципиально рассматриваются только Free-продукты?.. Тогда ваш выбор не такой уж большой и сводится в итоге к использованию ActiveX или .NET и обёрток на их основе. Например, можно попробовать что-то из такого:
NPOI: http://npoi.codeplex.com/ | https://github.com/tonyqus/npoi
EPPlus: http://epplus.codeplex.com/
Koogra Excel BIFF/XLSX Reader Library: https://sourceforge.net/projects/koogra/
Free Spire.XLS for .NET: https://www.e-iceblue.com/Introduce/fre ... onent.html

7 Libraries for Reading and Writing from/to Excel File in C#

См. также в Google.

По поводу .ods/.odt - попробуйте вот этот пакет (сам не проверял):
https://lavag.org/files/file/126-open-office-rgt-addon/
(Хотя, судя по описанию, есть только Writer, но не Reader)

Re: Импорт данных из Excel

Добавлено: 10 янв 2017, 16:21
Borjomy_1
Если вы хотите импортировать таблицу, то значительно проще работать с csv. Отпадают многие заморочки. Вы все равно получите результат в виде двухмерного строкового массива. Нет ВООБЩЕ никакой необходимости брать навороченный плагин.

Re: Импорт данных из Excel

Добавлено: 10 янв 2017, 20:09
IvanLis
dadreamer писал(а):По поводу .ods/.odt - попробуйте вот этот пакет (сам не проверял):
https://lavag.org/files/file/126-open-office-rgt-addon/
(Хотя, судя по описанию, есть только Writer, но не Reader)
Ну... если творчески подойти... ODS - формат открытый. Формально это ZIP архив, в котором все хранится, а в основе лежит XML.
Создал простенькую таблицу:
Снимок экрана от 2017-01-10 19-58-52.png
Сохранил файл, распаковал архив. Вот что внутри:
Снимок экрана от 2017-01-10 19-59-35.png
Ну и собственно файл, в котором находятся данные:
Снимок экрана от 2017-01-10 20-00-58.png
Я выкладывал несколько примеров, как можно XML разобрать. Сейчас из-за нехватки времени использовал EasyXML Toolkit, этого в принципе для демонстрации достаточно.

Получается необходимо:
- распаковать ZIP файл
- разобрать XML файл
- вытащить из кластера необходимые данные и сформировать 2D массив

С учетом того, что лист в книге всего один, то получается как-то так:
Parse-ODS.png
Результат:
Снимок экрана от 2017-01-10 20-01-27.png
Выглядит не очень, но реально нам нужен только массив (правый-верхний угол).
Parse-ODS.vi
lv2010 + EasyXML Toolkit
(19.33 КБ) 161 скачивание
В принципе ничего сложного нет, дел на 15 минут.
Наверное по этому и нет ни каких Toolkit для этого.

Re: Импорт данных из Excel

Добавлено: 10 янв 2017, 20:18
dadreamer
IvanLis писал(а):Формально это ZIP архив, в котором все хранится, а в основе лежит XML.
То же самое справедливо и для Майкрософтовского XLS(X) :wink: Только структура чуть иная.

Re: Импорт данных из Excel

Добавлено: 11 янв 2017, 00:06
Andrew Lunev
Полную поддержку форматов xls, doc, ods вам никто не сделает. Все потому что в этих файлах кроме самих таблиц хранится еще куча данных, которые непонятно как интерпретировать и для них нет аналогов в Labview. Например у вас одна из колонок таблицы получается по формулам из нескольких других. Вполне стандартная ситуация для Excel, но что делать с этими данными при импорте? Импортировать формулы или посчитать по этим формулам? То есть добавить половину Excel в плагин? А если в формулах какие-то перекрестные ссылки на другие листы или файлы? Даже несколько листов из Excel сложно преобразовать в формат Labview, потому что непонятно как их объединять в одну таблицу. А если данные в колонках разного типа, то в какую структуру Labview их преобразовывать? Поэтому и переводят в CSV, что там только текст и разделитель и ничего лишнего, он прекрасно преобразуется в обычную таблицу.
Но вообще есть вариант открыть как-то файлы и xls и ods. Надо добавить плагины в VI Open Data Storage TDM. Я вижу несколько плагинов (на картинке ниже), которые можно поставить и Labview начнет открывать эти файлы. Насколько хорошо они работают и платные или нет я не проверял. Думаю, работать должны ужасно...

Re: Импорт данных из Excel

Добавлено: 11 янв 2017, 00:23
Kosist
GT21 писал(а):Как можно импортировать из .xls файла таблицу в LabVIEW? Честно искал инфу, но все что нашел, это использование Report Generation Toolkit for Microsoft Office за 600 баксов или через CSV.
Мне же надо импорт именно из .xls (приятным бонусом будет так же и из .ods). Никаких модулей, связанных с Excel через ctrl+space не нашел
LV 2008
Есть еще тулкит от ViewPoint Systems (http://www.viewpointusa.com/product/ni- ... x-toolkit/), но он тоже платный.
Но в чем проблема? Не хотите/заказчик не хочет использовать csv - нужно покупать тулкит, и работать с ним. Чтобы использовать Excel, нужно ведь тоже лицензию покупать :wink: . А если заказчик не хочет этого, пускай конвертирует данные в csv - всего-то пара кликов. То же и для Open Office. Пусть он и бесплатный, но что мешает пересохранять файлы в csv? На худой конец, можно скрипт какой-то сварганить, думаю; для перегонки файлов.
Ведь все зависит от необходимого функционала. Если что-то нужно реально простое - делайте обертки, как Вам уже советовали здесь. Главное, чтобы затраты на программирование без тулкита, не были выше, чем покупка необходимого тулкита. Конечно же, при условии, что тулкит поможет Вам при создании кода...

Re: Импорт данных из Excel

Добавлено: 11 янв 2017, 09:51
GT21
IvanLis писал(а):Ну... если творчески подойти... ODS - формат открытый....
а можно в 8 версии?
и можно поподробнее про EasyXML Toolkit? он свободный?

Re: Импорт данных из Excel

Добавлено: 11 янв 2017, 12:05
IvanLis
GT21 писал(а):а можно в 8 версии?
Parse-ODS.vi
lv8.0 save from 2010
(24.27 КБ) 170 скачиваний
GT21 писал(а):и можно поподробнее про EasyXML Toolkit? он свободный?
http://jki.net/tools#easyxml
https://raw.githubusercontent.com/JKISo ... er/LICENSE

Re: Импорт данных из Excel

Добавлено: 11 янв 2017, 13:31
GT21
IvanLis писал(а):
GT21 писал(а):а можно в 8 версии?
спасибо

Re: Импорт данных из Excel

Добавлено: 22 мар 2017, 17:37
НиколайV
Приветствую, у меня по вопрос по схожей теме, запись таблицы из LabView в Excel. Воспользовался примером Excel - Write Table, переделал его как SubVI и подключил свою таблицу. Но почему-то в xcel файл некоторые числа пишутся без запятой (3 и 5 столбцы), ниже прикреплю скриншоты таблиц из labview и xcel. В самом примере Excel - Write Table сложно разобраться..

Re: Импорт данных из Excel

Добавлено: 22 мар 2017, 18:53
dadreamer
НиколайV, похоже, у вас числа пишутся в файл как текст. Посмотрите вот эти темы, попробуйте варианты решений оттуда:
http://labviewportal.org/viewtopic.php? ... 37&p=68282
http://labviewportal.org/viewtopic.php?f=49&t=8179