Python和Excel OpenPyXL

2024-09-29 23:28:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python处理Excel,有几个问题:

  1. 正在将Excel工作表加载到二维数组中。
    在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. 是否有一种方法可以将行分配给列表,从索引1开始,而不是从0开始
    在VBA中,有一个选项Base 1
    https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/option-base-statement

  2. 这是操作Excel数据集的最快方法吗
    然后我计划循环浏览2500行和5列->;12英尺500格
    有了VBA,诚实地说(在内存中的数组上操作)是非常有效的

  3. 据我所知,OpenPyXL的功能:

load_workbook       

#只创建对EXCEL工作簿的引用-它不会打开它吗?或者它被“加载”到内存中,但硬盘上的内容实际上是完整的

shtData = wkb.worksheets[0]                         

#还是只作为参考

shtReport = wkb.create_sheet(title="ReportTable")       

#它会添加工作表,但会将其添加到加载到内存中的excel中,只有在保存后,才会覆盖HD上的excel


Tags: to方法内存gtdataload数组vba
1条回答
网友
1楼 · 发布于 2024-09-29 23:28:23

您可以使用Excel spreadsheat创建数据框(2D表格)

import pandas as pd

df = pd.read_excel("data.xls")
print(df)
print("____________")
print(f'Average sales are: {df["Gross"].values.mean()}')
print(f'Net income for April: {df.at[3, "Net"]}')
print("____________")
df_no_header = pd.read_excel("data.xls",skiprows=1, header=None)
print(df_no_header)
print("____________")
print(f'Net income for April: {df_no_header.at[3, 2]}')

输出:

output

Pandas dataframe有许多方法,允许您访问行和列并执行更多操作。设置skiprows=1,header=None将跳过标题行。见here

相关问题 更多 >

    热门问题