Python, эквивалентный listObjects в VBA для Excel (таблицы) - PullRequest
0 голосов
/ 22 мая 2018

Я реализовал программу в VBA для Excel, чтобы генерировать автоматическую связь на основе пользовательских данных (выбор ячеек).Такой макрос, написанный на VBA, широко использует функцию listObject из VBA, то есть определяет таблицу (объект списка)

Dim ClsSht As Worksheet
    Set ClsSht = ThisWorkbook.Sheets("paragraph texts")
Dim ClsTbl As ListObject
    Set ClsTbl = ClsSht.ListObjects(1)

, которая очень логично обращается к таблице в коде: ClsTbl теперь является таблицей, где я хочузабрать данные.

myvariable= ClsTbl.listcolumns("D1").databodyrange.item(34).value

Что означает, что myvariable - это элемент (строка) 34 данных столбца D1 таблицы clstbl

Я решил научиться Python "переводить" всеэтот код в Python и сделать программу на основе Django доступной для всех.

Я новичок в Python, и мне интересно, что было бы эквивалентно в Python для объекта VBA.Это решение сформирует всю мою программу на python с самого начала, и я много сомневаюсь, чтобы решить, что такое python, эквивалентный listobject в VBA.

Основная идея здесь - найти способ получить доступ к таблицам.данные в удобочитаемом виде,

enter image description here

т.е. дайте мне значение столбца "текст", где столбец "глава" равен 3, а абзац столбца равен "2».Значения уникальны, то есть в столбце «текст» есть только одно значение, где это происходит.

Некоторые наблюдения:

  1. Я знаю, что все можно сделать со списками вPython, списки могут содержать списки, которые могут содержать списки ..., но это ужасно для удобства чтения.mylist 1 [2] [3] (при условии, например, что каждая строка может быть списком значений, а вся таблица - списком строк).

  2. Я не рассматривал вариант создания какой-либо базы данных.Существует несколько относительно небольших таблиц (от 10 до 500 строк и от 3 до 15 столбцов), которые связаны, но не в виде базы данных.Это заставило бы меня выучить еще один язык SQL или около того, и мне более чем достаточно с Python и DJango.

  3. Пользователь изменяет структуру многих таблиц (главы собираются или собираются вместе).splitted.

  4. данные состоят из 100% строк. Единственные целые числа - это числа для сортировки текста. Я не выполняю никаких математических операций со значениями, но просто складываю вместе фрагменты текста изамены в текстах.

  5. таблицы будут загружены в Python как текстовые файлы CSV.

Пожалуйста, укажите, если что-то недостаточно яснов вопросе, и я закончу это

Было бы необходимо работать с numpy? pandas?

т.е. дать мне значение ячейки

1 Ответ

0 голосов
/ 22 мая 2018

A DataFrame с использованием pandas должно обеспечивать все, что вам нужно, то есть разговор со строками, манипуляции, импорт и экспорт.Для начала попробуйте

import pandas as pd
df = pd.read_csv('your_file.csv')
print(df)
print(df['text'])

Записи первой строки будут преобразованы в метки столбцов DataFrame.

...