数据分析进阶-Excel自动化工具包openpyxl的基础使用

news/2024/7/7 19:58:12

安装工具包

pip install openpyxl

工作簿的使用

注意读取的EXCEL文件只能是xlsx后缀的噢~

# 创建工作簿
wb = openpyxl.Workbook()
wb.save('demo.xlsx')  # 在源文件修改后也可以作为另存为的选项
# 打开工作簿
wb = openpyxl.load_workbook('test.xlsx', data_only=True) # 读取公式设置

# 查看sheet名
print(wb.sheetnames)

# 获取sheet的两种方式
ws_1 = wb['sheet1'] # 名字
ws_1 = wb.worksheets[0] # 索引

工作表的使用

# 获取工作表名称
print(ws_1.title)

# 修改工作表名称
ws_1.title = 'sheet2'

# 删除工作表
wb.remove(wb['sheet1'])

# 复制工作表
copy_sheet = wb.copy_worksheet(wb['产品功能_H'])

# 创建工作表
wb.create_sheet('sheet3')

读写数据

属性说明
row单元格所在行
column单元格所在列
value单元格的值
coordinate单元格的坐标
# 获取A1的值
ws_1['A1'].value
ws_1.cell(row=1,column=1).value
ws_3.cell(1,1).value

# 获取区域
ws_1['A1:B2']
for x in ws_1['A1:B2']:
    for x in x:
        print(x.value)
# 最大行
ws_1.max_row

# 最大列
ws_1.max_column

# 获取单元格行列
ws_1['A1'].row
ws_1['A1'].column
# 写入数据(单个单元格)
wb_1.cell(15,15,value='test')
wb_1['AA']='test'

# 在最后一列写入数据
wb_1.append([1,2,3,4])

# 写入数据(区域)
for x in wb_1['A1:E4']:
    for x1 in x:
        x1.value = 1
# 插入是向前
# 删除是往后
wb_1.insert_cols(idx=2,amount=5)
wb_1.insert_rows(idx=2,amount=5)
wb_1.delete_cols(idx=2,amount=5)
wb_1.delete_rows(idx=2,amount=5)
# 合并与取消合并单元格
wb_1.merge_cells('B3:F5')   # 合并
wb_1.unmerge_cells('B3:F5') # 取消合并
# 字体设置
font = openpyxl.styles.Font(name=u'微软雅黑', bold=True, italic=True, size=9)
wb_1['A1'].font = font

图表操作

# 柱状图
# 新建一个柱状图
chart = openpyxl.chart.BarChart()
# 设定数据引用范围
data = openpyxl.chart.Reference(wb_1,min_row=1,max_row=5,min_col=2,max_col=3)
# X轴项目名称
project= openpyxl.chart.Reference(wb_1,min_row=2,max_row=5,min_col=1)
# 给柱状图添加数据,数据源中有标题,因为数据中有标题行,这里为True
chart.add_data(data,titles_from_data=True)
# 设定X轴的项目
chart.set_categories(project)
wb_1.add_chart(chart,"F1")

http://www.niftyadmin.cn/n/4411285.html

相关文章

数据分析进阶-Python提取Word文档中的表格信息

前言 利用此方法针对大量的报名表进行信息提取~ 安装工具包 pip install python-docx表格信息 代码 注意读取的EXCEL文件只能是docx后缀的噢~若文件太多可利用以下方法批量转化 import os import docx import xlwt import shutil from win32com import client as wc# 把do…

解决ATI显卡在ubuntu 9.10下开特效有点卡的问题

解决ATI 显卡在ubuntu 下开特效有点卡的问题 ATI 3400系列显卡在ubuntu 9.10 karmic 下开特效后,感觉会有点卡,比如说在任务栏切换窗口的时候,可以感觉到明显的停顿。据说9.04 jaunty 下也有同样的问题。 具体的解决办法是通过pp…

数据分析进阶-Python绘制桑基图

前言 通过绘制桑基图来呈现不同时期用户的状态变更~ 代码 import pandas as pddata pd.read_excel(data-2.xlsx, sheet_name Sheet2)# 取桑基图的节点 node list() each_node list() for i in data[col1]:each_node.append(i)for i in data[col2]:each_node.append(i)ea…

数据分析进阶-Python批量解压加密文件

前言 由于工作需要,得批量解压一批带有密码的压缩文件,这里提供两种版本的解压代码~ 第一种版本(对于大文件解压耗时较久) import os import zipfiledef unzip_file():path_in "C:\data"path_out "C:\output&…

数据分析进阶 - 使用Pyecharts搭建数据看板

前言 之前尝试过多种数据可视化的方式,包括Tableau 、Superset 、matplotlib 等,在之前的博客中都有所介绍,今天主要介绍如何利用Pyecharts来搭建数据看板~ 温馨提示 如果在使用过程中遇到无法渲染(即输出均为空白)…

【webrtc】rtc::Thread和std::thread 的用法

全局线程 itsfolf/Discord-Screenshare-Linux#include "rtc_base/thread.h"rtc::Thread* GlobalLoopThread() {static auto result = []