(欢迎光临差–点先生博客)
(开发环境PyCharm 2022 Professional版,Python3.7)
一、使用openpyxl读取非加密excel
- 安装模块:
pip install openpyxl
,导入模块:import openpyxl
- 读取路径下的文件,创建工作簿对象:
workbook = openpyxl.load_workbook('文件路径')
- 读取sheet页,读取激活的sheet页:
workbook_sheet = workbook.active
,读取指定sheet页:workbook_sheet = workbook['sheet名称']
- 获取数据规模,最大行数:
data_maxrow = workbook_sheet.max_row
,最大列数:data_maxcolumn = workbook_sheet.max_column
- 获取指定单元格数据:
data = workbook_sheet.cell('行号', '列号').value
- 写入值:
workbook_sheet.cell('行号', '列号').value = data
- 保存修改:
workbook.save('文件路径')
- 关闭工作簿对象:
workbook.close()
二、使用openpyxl读取加密excel
- 安装解密模块:
pip install msoffcrypto-tool
- 导入模块:
import msoffcrypto
- 创建文件对象,以二进制只读模式:
msoffcrypto.OfficeFile(open('文件路径', 'rb'))
- 键入文件密码:
file.load_key(password='密码')
- 将加密文件拷贝一份到指定路径解除密码
file.decrypt(open('保存路径', 'wb'))
- 后续就可以用
openpyxl.load_workbook
进行无密码读取继续相关操作
三、使用openpyxl新建excel
- 创建工作簿对象:
workbook = openpyxl.Workbook()
- 取得sheet对象:
workbook_sheet = workbook.active
- 插入一行数据:
workbook_sheet.append([数据列表])
- 保存excel:
workbook.save('保存的路径')
- 关闭工作簿对象:
workbook.close()
四、使用pandas读取excel(比openpyxl快速)
import pandas
excel_name = r'C:\Users\Administrator\Desktop\xxx1.xlsx'
sheet_name = r'xxxSheet'
pd_excel = pandas.read_excel(excel_name, sheet_name=sheet_name, dtype='object')
# dtype='object'是为了防止读取excel数据时pandas自动转换,如果不加上的话000123自动转为123
table = pd_excel.values
for row in table:
for column in row:
print(column)
# 转为列表格式
excel_list = pd_excel.values.tolist()
# 转为字典格式
excel_dict = pd_excel.to_dict('records') # orient='records'参数告诉to_dict函数将DataFrame的每一行转换为一个字典
五、使用pandas创建excel(比openpyxl快速)
nameList = []
valueList = []
for i in table:
nameList.append(i[1])
valueList.append(i[5])
df = pandas.DataFrame({'用户名': nameList, '所属公司': valueList})
df.to_excel(r'C:\Users\Administrator\Desktop\df结果表.xlsx', sheet_name='Sheet1', index=False)