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

Простейшие вопросы в области инженерной разработки
Ответить
GT21
user
user
Сообщения: 74
Зарегистрирован: 29 апр 2016, 09:22
Версия LabVIEW: 8.6
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение GT21 »

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

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

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

Сообщение Borjomy_1 »

Ну что вам сказать... Задача специфическая, использует не свободно распространяемые форматы. И вы еще ее хотите решить бесплатными средствами. Чем вас не устраивает csv? Сделайте макрос в экселе.
GT21
user
user
Сообщения: 74
Зарегистрирован: 29 апр 2016, 09:22
Версия LabVIEW: 8.6
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение GT21 »

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

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

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

Сообщение 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)
Последний раз редактировалось dadreamer 10 янв 2017, 17:52, всего редактировалось 2 раза.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

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

Сообщение Borjomy_1 »

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

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

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

Сообщение 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 для этого.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

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

Сообщение dadreamer »

IvanLis писал(а):Формально это ZIP архив, в котором все хранится, а в основе лежит XML.
То же самое справедливо и для Майкрософтовского XLS(X) :wink: Только структура чуть иная.
Вложения
2017-01-10_22-17-18.jpg
Аватара пользователя
Andrew Lunev

Activity Professionalism
VIP
VIP
Сообщения: 957
Зарегистрирован: 11 дек 2010, 12:31
Награды: 2
Версия LabVIEW: 2014-2021
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 10 раз

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

Сообщение Andrew Lunev »

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

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

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

Сообщение 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? На худой конец, можно скрипт какой-то сварганить, думаю; для перегонки файлов.
Ведь все зависит от необходимого функционала. Если что-то нужно реально простое - делайте обертки, как Вам уже советовали здесь. Главное, чтобы затраты на программирование без тулкита, не были выше, чем покупка необходимого тулкита. Конечно же, при условии, что тулкит поможет Вам при создании кода...
Мы делили апельсин - много наших полегло...
GT21
user
user
Сообщения: 74
Зарегистрирован: 29 апр 2016, 09:22
Версия LabVIEW: 8.6
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение GT21 »

IvanLis писал(а):Ну... если творчески подойти... ODS - формат открытый....
а можно в 8 версии?
и можно поподробнее про EasyXML Toolkit? он свободный?
LabVIEW 8.6
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

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

Сообщение 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
GT21
user
user
Сообщения: 74
Зарегистрирован: 29 апр 2016, 09:22
Версия LabVIEW: 8.6
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение GT21 »

IvanLis писал(а):
GT21 писал(а):а можно в 8 версии?
спасибо
LabVIEW 8.6
НиколайV
beginner
beginner
Сообщения: 23
Зарегистрирован: 19 май 2016, 11:14
Версия LabVIEW: 2015
Контактная информация:

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

Сообщение НиколайV »

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

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

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

Сообщение dadreamer »

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

Вернуться в «Для чайников»