Я работаю с Excel, используя Python, и у меня есть несколько вопросов:
- Загрузка листа Excel в 2-мерный массив.
В VBA я бы просто сделал:
dim arrData as Variant
arrData = shtData.Range("A1:E2500")
Я бы получил массив (от 1 до 2500, от 1 до 5), к которому я могу легко получить доступ, например, arrData (1,5) - ›строка 1 столбец 5
В Python мне удалось сделать следующее:
#declare list
excel_data=[]
#loop to load excel spreadsheet data into 2d Array
#basically I am looping through every row and append it to list
for row in shtData.iter_rows(min_row=5, max_row=50,values_only =True):
excel_data.append(row)
Есть ли способ назначить строку в список, начиная с индекса 1, а не с 0?
В VBA есть опция Option Base 1.
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/option-base-statement < br>Это самый быстрый способ работы с набором данных Excel?
Я планирую затем перебрать, скажем, 2500 строк и 5 столбцов - ›12 500 ячеек.
Честно говоря, с VBA это было очень эффективно (работа с массивом в памяти).Насколько я понимаю, функции OpenPyXL:
load_workbook
# только создает ССЫЛКУ НА EXCEL WORKBOOK - он не открывает? или он загружен в память, но то, что на HD, на самом деле цело?
shtData = wkb.worksheets[0]
# снова только ссылка?
shtReport = wkb.create_sheet(title="ReportTable")
# он добавляет лист, но добавляет его в Excel, который загружается в память, только после сохранения Excel на HD действительно перезаписывается?