Page 1 of 1

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

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

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

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

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

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

Тем, что данные мне "приходят" в экселевском. Но разве .odt не свободный?

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

PostPosted: 10 Jan 2017, 15:49
by 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

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

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

PostPosted: 10 Jan 2017, 20:09
by IvanLis
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 19 times


В принципе ничего сложного нет, дел на 15 минут.
Наверное по этому и нет ни каких Toolkit для этого.

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

PostPosted: 10 Jan 2017, 20:18
by dadreamer
IvanLis wrote:Формально это ZIP архив, в котором все хранится, а в основе лежит XML.

То же самое справедливо и для Майкрософтовского XLS(X) :wink: Только структура чуть иная.

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

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

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

PostPosted: 11 Jan 2017, 00:23
by Kosist
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? На худой конец, можно скрипт какой-то сварганить, думаю; для перегонки файлов.
Ведь все зависит от необходимого функционала. Если что-то нужно реально простое - делайте обертки, как Вам уже советовали здесь. Главное, чтобы затраты на программирование без тулкита, не были выше, чем покупка необходимого тулкита. Конечно же, при условии, что тулкит поможет Вам при создании кода...

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

PostPosted: 11 Jan 2017, 09:51
by GT21
IvanLis wrote:Ну... если творчески подойти... ODS - формат открытый....

а можно в 8 версии?
и можно поподробнее про EasyXML Toolkit? он свободный?

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

PostPosted: 11 Jan 2017, 12:05
by IvanLis
GT21 wrote:а можно в 8 версии?

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


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

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

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

PostPosted: 11 Jan 2017, 13:31
by GT21
IvanLis wrote:
GT21 wrote:а можно в 8 версии?

Parse-ODS.vi


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

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

спасибо

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

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

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

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