根据@ikeoddy提供的建议,这将把所有部分组合起来:
如何使用Python打开受密码保护的Excel文件?
import pandas as pd
import win32com.client
import os
import getpass
file_path = r'your_file_path'
file_name = r'your_file_name.extension'
full_name = os.path.join(file_path, file_name)
在Python中获取命令行密码输入
xl_app = win32com.client.Dispatch('Excel.Application')
pwd = getpass.getpass('Enter file password: ')
Workbooks.Open Method (Excel)
xl_wb = xl_app.Workbooks.Open(full_name, False, True, None, pwd)
xl_app.Visible = False
xl_sh = xl_wb.Worksheets('your_sheet_name')
row_num = 0
cell_val = ''
while cell_val != None:
row_num += 1
cell_val = xl_sh.Cells(row_num, 1).Value
last_row = row_num - 1
col_num = 0
cell_val = ''
while cell_val != None:
col_num += 1
cell_val = xl_sh.Cells(1, col_num).Value
last_col = col_num - 1
ikeoddy的回答:
content = xl_sh.Range(xl_sh.Cells(1, 1), xl_sh.Cells(last_row, last_col)).Value
df = pd.DataFrame(list(content[1:]), columns=content[0])
df.head()
Python Win32 COM关闭Excel工作簿
xl_wb.Close(False)
xlws
有Row
和RowCount
(或者叫其他名字)吗?如果有,那么循环遍历行数并构建一个列表的列表...然后在此基础上使用pandas.DataFrame
...(抱歉-我不用Windows-所以无法自己尝试) - Jon Clements