Инструменты пользователя

Инструменты сайта


Боковая панель

Перевод этой страницы:

ru:actions:tables

Работа с таблицами

Использование

Таблицы используются для получения более сложно организованных данных, чем списки, (например, список товаров для интернет-магазина, где построчно представлены разные данные: название, цена, описание и пр.)

Работать с таблицами удобно, если:

  • у вас есть обычный файл в формате .xls, .xlsx, .odt или .csv и нужен доступ к данным из него.
  • вам нужно сохранить какие-то созданные в проекте данные в виде таблицы или просто в формат Exсel.

Создание и заполнение

Чтобы добавить таблицу в проект выберите группу действий «Таблицы» и создайте таблицу.

На панели статических блоков появится пиктограмма созданной таблицы.

Разметка в таблице простая, как в обычном Excel документе, столбцы именуются латинскими буквами, строки - цифрами (начиная с нуля). Таблицу можно заполнить вручную или загрузить данные из файла. Для того, чтобы загружать данные в таблицу из файла, поставьте галку «Загружать из файла», и, если нужно полностью синхронизировать таблицу с файлом, поставьте галку «Сохранять изменения таблицы в файл». Также понадобится указать путь к файлу, и разделитель. Если у вас обычный .xls, .xlsx, .odt или .csv файл, то просто выберите вариант с этими расширениями, и указывать разделитель не нужно. Если файл, например, .txt, то выберите «свой формат», и укажите символы разделителя.

Для использования данных, содержащихся в таблице, добавьте экшн «Операции над таблицей», с его помощью вы сможете брать строки или ячейки, добавлять или удалять их, и сохранять данные в файл. Задать действие с таблицей можно в окне свойств действия:

  • добавить строку - добавление строки в таблицу
  • удалить строку - удаление строки из таблицы
  • взять строку - запись строки из таблицы в список или переменную
  • получить количество строк - получение кол-ва строк в таблице и запись в переменную
  • получить количество столбцов - получение кол-ва столбцов в таблице и запись в переменную
  • прочитать ячейку - чтение содержимого ячейки и запись значения в переменную
  • записать ячейку - запись значения в ячейку

Обратите внимание: положить все ячейки таблицы из одной строки в переменные можно в одно действие. Это делается через операцию «взять строку». Не нужно для этого создавать много действий, которые будут читать каждую ячейку таблицы отдельно.
При указании номеров строк можно использовать диапазоны.

Ограничения и предосторожности

  • Не создавайте очень большие файлы в сотни мегабайт, особенно если у вас мало оперативной памяти.
  • Нельзя полностью синхронизировать таблицу с файлом (с сохранением изменений в файл) из нескольких проектов с разными разделителями. Т.е. например, у вас два разных проекта. В обоих вы используете один и тот же файл. Но в первом столбцы разделены через ';', а в другом через '-' то произойдет ошибка.
  • Ограничения при многопоточности читайте ниже

Многопоточный доступ к одному и тому же файлу

Если вы выполняете свой проект многопоточно (при полной синхронизации файла с таблицей) то никаких проблем не будет при соблюдении простого правила: работайте с таблицей в одно действие. Например, вам нужно взять строку с удалением. Будет не правильно, если вы сначала в одном действии возьмете строку, а в другом ее удалите. Это можно сделать в одно действие - при взятии строки установить галку «С удалением». В одно действие можно сделать практически все, что вам может понадобиться при работе с таблицей.
Если все проекты только читают файл, то проблем, вообще, не будет, как бы вы не работали с таблицей.

Обратите внимание !!!

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

ru/actions/tables.txt · Последние изменения: 2015/07/14 15:51 (внешнее изменение)