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

Простейшие вопросы в области инженерной разработки

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

Postby GT21 on 10 Jan 2017, 15:24

Как можно импортировать из .xls файла таблицу в LabVIEW? Честно искал инфу, но все что нашел, это использование Report Generation Toolkit for Microsoft Office за 600 баксов или через CSV.
Мне же надо импорт именно из .xls (приятным бонусом будет так же и из .ods). Никаких модулей, связанных с Excel через ctrl+space не нашел
LV 2008
GT21
beginner
beginner
 
Posts: 41
Joined: 29 Apr 2016, 09:22
LabVIEW Version: 8.6
Karma: 0

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

Postby Borjomy_1 on 10 Jan 2017, 15:44

Ну что вам сказать... Задача специфическая, использует не свободно распространяемые форматы. И вы еще ее хотите решить бесплатными средствами. Чем вас не устраивает csv? Сделайте макрос в экселе.
Borjomy_1
expert
expert
 
Posts: 1761
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 309
VIP

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

Postby GT21 on 10 Jan 2017, 15:45

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

Тем, что данные мне "приходят" в экселевском. Но разве .odt не свободный?
GT21
beginner
beginner
 
Posts: 41
Joined: 29 Apr 2016, 09:22
LabVIEW Version: 8.6
Karma: 0

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

Postby dadreamer on 10 Jan 2017, 15:49

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)
Last edited by dadreamer on 10 Jan 2017, 17:52, edited 2 times in total.
User avatar
dadreamer
doctor
doctor
 
Posts: 2858
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 704
I/O VIP vision internet

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

Postby Borjomy_1 on 10 Jan 2017, 16:21

Если вы хотите импортировать таблицу, то значительно проще работать с csv. Отпадают многие заморочки. Вы все равно получите результат в виде двухмерного строкового массива. Нет ВООБЩЕ никакой необходимости брать навороченный плагин.
Borjomy_1
expert
expert
 
Posts: 1761
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 309
VIP

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

Postby IvanLis on 10 Jan 2017, 20:09

dadreamer wrote:По поводу .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 KiB) Downloaded 36 times


В принципе ничего сложного нет, дел на 15 минут.
Наверное по этому и нет ни каких Toolkit для этого.
User avatar
IvanLis
professor
professor
 
Posts: 4459
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 691
hardware VIP bloggers teachers

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

Postby dadreamer on 10 Jan 2017, 20:18

IvanLis wrote:Формально это ZIP архив, в котором все хранится, а в основе лежит XML.

То же самое справедливо и для Майкрософтовского XLS(X) :wink: Только структура чуть иная.
Attachments
2017-01-10_22-17-18.jpg
User avatar
dadreamer
doctor
doctor
 
Posts: 2858
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 704
I/O VIP vision internet

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

Postby Andrew Lunev on 11 Jan 2017, 00:06

Полную поддержку форматов xls, doc, ods вам никто не сделает. Все потому что в этих файлах кроме самих таблиц хранится еще куча данных, которые непонятно как интерпретировать и для них нет аналогов в Labview. Например у вас одна из колонок таблицы получается по формулам из нескольких других. Вполне стандартная ситуация для Excel, но что делать с этими данными при импорте? Импортировать формулы или посчитать по этим формулам? То есть добавить половину Excel в плагин? А если в формулах какие-то перекрестные ссылки на другие листы или файлы? Даже несколько листов из Excel сложно преобразовать в формат Labview, потому что непонятно как их объединять в одну таблицу. А если данные в колонках разного типа, то в какую структуру Labview их преобразовывать? Поэтому и переводят в CSV, что там только текст и разделитель и ничего лишнего, он прекрасно преобразуется в обычную таблицу.
Но вообще есть вариант открыть как-то файлы и xls и ods. Надо добавить плагины в VI Open Data Storage TDM. Я вижу несколько плагинов (на картинке ниже), которые можно поставить и Labview начнет открывать эти файлы. Насколько хорошо они работают и платные или нет я не проверял. Думаю, работать должны ужасно...
Attachments
xls.PNG
User avatar
Andrew Lunev
leader
leader
 
Posts: 850
Joined: 11 Dec 2010, 12:31
Location: Москва
Medals: 2
Activity (1) Professionalism (1)
LabVIEW Version: 2016
Karma: 244
hardware I/O VIP teachers

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

Postby Kosist on 11 Jan 2017, 00:23

GT21 wrote:Как можно импортировать из .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? На худой конец, можно скрипт какой-то сварганить, думаю; для перегонки файлов.
Ведь все зависит от необходимого функционала. Если что-то нужно реально простое - делайте обертки, как Вам уже советовали здесь. Главное, чтобы затраты на программирование без тулкита, не были выше, чем покупка необходимого тулкита. Конечно же, при условии, что тулкит поможет Вам при создании кода...
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 763
Joined: 21 Feb 2011, 23:44
Location: СумГУ
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 225
CLAD I/O VIP students

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

Postby GT21 on 11 Jan 2017, 09:51

IvanLis wrote:Ну... если творчески подойти... ODS - формат открытый....

а можно в 8 версии?
и можно поподробнее про EasyXML Toolkit? он свободный?
GT21
beginner
beginner
 
Posts: 41
Joined: 29 Apr 2016, 09:22
LabVIEW Version: 8.6
Karma: 0

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

Postby IvanLis on 11 Jan 2017, 12:05

GT21 wrote:а можно в 8 версии?

Parse-ODS.vi
lv8.0 save from 2010
(24.27 KiB) Downloaded 41 times


GT21 wrote:и можно поподробнее про EasyXML Toolkit? он свободный?

http://jki.net/tools#easyxml
https://raw.githubusercontent.com/JKISo ... er/LICENSE
User avatar
IvanLis
professor
professor
 
Posts: 4459
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 691
hardware VIP bloggers teachers

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

Postby GT21 on 11 Jan 2017, 13:31

IvanLis wrote:
GT21 wrote:а можно в 8 версии?

Parse-ODS.vi


GT21 wrote:и можно поподробнее про EasyXML Toolkit? он свободный?

http://jki.net/tools#easyxml
https://raw.githubusercontent.com/JKISo ... er/LICENSE

спасибо
GT21
beginner
beginner
 
Posts: 41
Joined: 29 Apr 2016, 09:22
LabVIEW Version: 8.6
Karma: 0

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

Postby НиколайV on 22 Mar 2017, 17:37

Приветствую, у меня по вопрос по схожей теме, запись таблицы из LabView в Excel. Воспользовался примером Excel - Write Table, переделал его как SubVI и подключил свою таблицу. Но почему-то в xcel файл некоторые числа пишутся без запятой (3 и 5 столбцы), ниже прикреплю скриншоты таблиц из labview и xcel. В самом примере Excel - Write Table сложно разобраться..
Attachments
Screenshot_6.png
Таблица LabView
Screenshot_7.png
Таблица excel
НиколайV
beginner
beginner
 
Posts: 21
Joined: 19 May 2016, 11:14
LabVIEW Version: 2015
Karma: 0

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

Postby dadreamer on 22 Mar 2017, 18:53

НиколайV, похоже, у вас числа пишутся в файл как текст. Посмотрите вот эти темы, попробуйте варианты решений оттуда:
viewtopic.php?f=21&t=8537&p=68282
viewtopic.php?f=49&t=8179
User avatar
dadreamer
doctor
doctor
 
Posts: 2858
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 704
I/O VIP vision internet


Return to Для чайников

Who is online

Users browsing this forum: Google and 11 guests

cron