import pandas as pd
from openpyxl import load_workbook
from openpyxl import Workbook
通过openpyxl 拿取数据,load_workbook()
会把整个工作簿中的所有内容都导入进来,具体实现代码如下。
ex2 = load_workbook("C:/Users/Administrator/Desktop/456999/2022/3z/dataset.xlsx")
print(ex2)
通过pandas 拿取数据,read_excel读取的excel可以显示出来。
ex1 = pd.read_excel("C:/Users/Administrator/Desktop/456999/2022/3z/dataset.xlsx",
sheet_name="杭州")
print(ex1)
wb = Workbook()
ws = wb.active
ws["A1"] = "张三"
ws["A2"] = "李四"
ws["A3"] = "王五"
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/20220105.xlsx")
from openpyxl import Workbook
创建工作簿,并插入数据
wb = Workbook()
ws = wb.active
ws["A1"] = "张三"
ws["A2"] = "李四"
ws["A3"] = "王五"
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/20220105.xlsx")
方法2 对单元格赋值
wbt = Workbook()
wst = wbt.active
wst.cell(row=1, column=1).value = 91
wst.cell(row=2, column=1).value = 92
wst.cell(row=3, column=1).value = 93
wbt.save("C:/Users/Administrator/Desktop/456999/2022/3z/20220105ceil_num.xlsx")
from openpyxl import Workbook
给某一行单元格赋值
wb = Workbook()
ws = wb.active
ws.append(["张三", "李四", "王五", 100, 99])
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/202201051106.xlsx")
循环插入多行数据
wbt = Workbook()
wst = wbt.active
data = [["jack", 3, 2, 1], ["lucy", 4, 5, 1], ["mark", 8, 3, 9]]
for i in data:
wst.append(i)
wbt.save("C:/Users/Administrator/Desktop/456999/2022/3z/202201051152.xlsx")
from openpyxl import Workbook
import pandas as pd
from openpyxl.utils.dataframe import dataframe_to_rows
先读取数据
df = pd.read_excel("C:/Users/Administrator/Desktop/456999/2022/3z/202201051152.xlsx")
创建工作簿
wb = Workbook()
激活工作簿
wb_act = wb.active
循环解析excel,并插入工作簿
for r in dataframe_to_rows(df, index=False, header=True):
wb_act.append(r)
保存工作簿
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/202201051436.xlsx")
总结:在上述代码中有一个关键的方法dataframe_to_rows(),这个方法是将pandas格式的数据转化为一行一行的数据,其后面括号中的index表示在转化过程中是否需要将DataFrame表的索引列也插入Excel中,True表示需要,False表示不需要;header表示是否需要将DataFrame表的表头(列名)也插入Excel中。一般情况下,表头是保留的,而索引列根据实际需要来决定是否保留。如果索引列中含有关键信息,则需要保留;如果索引列只是单纯的一列数,则没必要保留。
from openpyxl import Workbook
from openpyxl import load_workbook
import pandas as pd
from openpyxl.utils.dataframe import dataframe_to_rows
创建sheet ,拷贝一个sheet,修改sheet(包含修改颜色),删除sheet等
wb = Workbook()
ws = wb.active
创建一个空sheet
wb.create_sheet()
创建二个命名的sheet
wb.create_sheet("上海")
也可以指定sheet的位置和命名
bj_sheet = wb.create_sheet("北京", 0)
默认的sheet,都是放在最后面
wb.create_sheet("深圳")
拷贝一个sheet
wb.copy_worksheet(bj_sheet)
只会修改第一个sheet的名字
ws.title = "9999"
更改sheet的颜色(默认修改第一个),改成红色。要把excel先关闭。
ws.sheet_properties.tabColor = "FFEE0000"
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/202201051527.xlsx")
查询有哪些sheet(会放在一个list中)
lw = load_workbook("C:/Users/Administrator/Desktop/456999/2022/3z/202201051527.xlsx")
print(lw.sheetnames)
删除sheet的动作函数(删除北京)
wb.remove(bj_sheet)
可以生成一个新的excel,也可以在原来的基础上删除(北京这个sheet)
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/202201051528.xlsx")
from openpyxl import Workbook
from openpyxl import load_workbook
import pandas as pd
from openpyxl.utils.dataframe import dataframe_to_rows
#
wb = Workbook()
ws = wb.active
创建sheet(自己命名和指定位置)
bj_sheet = wb.create_sheet("北京", 0)
sh_sheet = wb.create_sheet("上海", 1)
sz_sheet = wb.create_sheet("深圳", 2)
给指定的sheet赋值
bj_sheet["A1"] = "张三"
bj_sheet["A2"] = "李四"
bj_sheet["A3"] = "王五"
给默认的sheet插入数据
ws["A1"] = "张三ws"
ws["A2"] = "李四ws"
ws["A3"] = "王五ws"
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/202201051529.xlsx")
具体指明单元格
print(bj_sheet["A1"])
指定取出某单元格中的值
wc_ll = bj_sheet.cell(row=1, column=1)
print(wc_ll.value)
取出默认的sheet中的值
print(ws.cell(row=1, column=1).value)
通过切片获取单元格,或其他方法获取单元格
print(ws[1: 3])
print(ws["C:E"])
print(ws["A1": "C6"])
from openpyxl import Workbook
from openpyxl import load_workbook
import pandas as pd
from openpyxl.styles import Font
from openpyxl.utils.dataframe import dataframe_to_rows
#
wb = Workbook()
ws = wb.active
创建sheet(自己命名和指定位置)
bj_sheet = wb.create_sheet("北京", 0)
sh_sheet = wb.create_sheet("上海", 1)
sz_sheet = wb.create_sheet("深圳", 2)
给指定的sheet赋值
bj_sheet["A1"] = "张三"
bj_sheet["A2"] = "李四"
bj_sheet["A3"] = "王五"
设置单元格的字体
bj_sheet["A1"].font = Font(name="新宋体", size=20, bold=True, italic=True,
vertAlign="baseline", underline="singleAccounting",
strike=True, color="FFEE0000")
给默认的sheet插入数据
ws["A1"] = "张三ws"
ws["A2"] = "李四ws"
ws["A3"] = "王五ws"
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/202201051529.xlsx")
from openpyxl import Workbook
from openpyxl import load_workbook
import pandas as pd
from openpyxl.styles import Font, PatternFill, Border, Side
from openpyxl.utils.dataframe import dataframe_to_rows
#
wb = Workbook()
ws = wb.active
创建sheet(自己命名和指定位置)
bj_sheet = wb.create_sheet("北京", 0)
sh_sheet = wb.create_sheet("上海", 1)
sz_sheet = wb.create_sheet("深圳", 2)
给指定的sheet赋值
bj_sheet["A1"] = "张三"
bj_sheet["A2"] = "李四"
bj_sheet["A3"] = "王五"
bj_sheet["B1"] = "BBB张三"
bj_sheet["B2"] = "BBB李四"
bj_sheet["B3"] = "BBB王五"
设置单元格的字体
bj_sheet["A1"].font = Font(name="新宋体", size=20, bold=True, italic=True,
vertAlign="baseline", underline="singleAccounting",
strike=True, color="FFEE0000")
单元格填充(背景颜色,格式)
bj_sheet["A2"].fill = PatternFill(fill_type="gray125", end_color="FFFFFF00")
边框线设置
bj_sheet["A3"].border = Border(left=Side(border_style="hair", color="FFEE0000"),
right=Side(border_style="thick", color="FFEE0000"),
top=Side(border_style="thick", color="FF00A8FF"),
bottom=Side(border_style="thick", color="FF11FF00"))
设置对角线
bj_sheet["B1"].border = Border(diagonal=Side(border_style="thick", color="FFEE0000"),
diagonalDown=True)
bj_sheet["B2"].border = Border(diagonal=Side(border_style="thick", color="FFEE0000"),
diagonalUp=True)
bj_sheet["B3"].border = Border(diagonal=Side(border_style="thick", color="FFEE0000"),
diagonalDown=True, diagonalUp=True)
给默认的sheet插入数据
ws["A1"] = "张三ws"
ws["A2"] = "李四ws"
ws["A3"] = "王五ws"
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/202201060920.xlsx")
from openpyxl import Workbook
from openpyxl import load_workbook
import pandas as pd
from openpyxl.styles import Font, PatternFill, Border, Side
from openpyxl.utils.dataframe import dataframe_to_rows
#
wb = Workbook()
ws = wb.active
创建sheet(自己命名和指定位置)
bj_sheet = wb.create_sheet("北京", 0)
sh_sheet = wb.create_sheet("上海", 1)
sz_sheet = wb.create_sheet("深圳", 2)
给指定的sheet赋值
bj_sheet["A1"] = "张三"
bj_sheet["A2"] = "李四"
bj_sheet["A3"] = "王五"
bj_sheet["B1"] = "BBB张三"
bj_sheet["B2"] = "BBB李四"
bj_sheet["B3"] = "BBB王五"
bj_sheet["C1"] = "CCC张三"
bj_sheet["C2"] = "CCC李四"
bj_sheet["C3"] = "CCC王五"
遍历每一行
for row in bj_sheet[1: 3]:
# 遍历每一行中的每一列
for c in row:
c.font = Font(name="新宋体", size=20, bold=True, italic=True,
vertAlign="baseline", underline="singleAccounting",
strike=True, color="FFEE0000")
c.fill = PatternFill(fill_type="gray125", end_color="FFFFFF00")
c.border = Border(left=Side(border_style="hair", color="FFEE0000"),
right=Side(border_style="thick", color="FFEE0000"),
top=Side(border_style="thick", color="FF00A8FF"),
bottom=Side(border_style="thick", color="FF11FF00"))
方法2、指定区域中的每一行
for row in bj_sheet["A1": "C3"]:
# 遍历每一行中的每一列
for c in row:
c.font = Font(name="新宋体", size=20, bold=True, italic=True,
vertAlign="baseline", underline="singleAccounting",
strike=True, color="FFEE0000")
c.fill = PatternFill(fill_type="gray125", end_color="FFFFFF00")
c.border = Border(left=Side(border_style="hair", color="FFEE0000"),
right=Side(border_style="thick", color="FFEE0000"),
top=Side(border_style="thick", color="FF00A8FF"),
bottom=Side(border_style="thick", color="FF11FF00"))
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/202201061028.xlsx")
from openpyxl import Workbook
from openpyxl import load_workbook
import pandas as pd
from openpyxl.styles import Alignment
from openpyxl.utils.dataframe import dataframe_to_rows
设置对齐方式(下面内容总结)
wb = Workbook()
ws = wb.active
创建sheet(自己命名和指定位置)
bj_sheet = wb.create_sheet("北京", 0)
sh_sheet = wb.create_sheet("上海", 1)
sz_sheet = wb.create_sheet("深圳", 2)
给指定的sheet赋值
bj_sheet["A1"] = "分散对齐"
bj_sheet["A2"] = "李四"
bj_sheet["A3"] = "王五"
bj_sheet["A4"] = "赵六"
bj_sheet["B1"] = "BBB张三"
bj_sheet["B2"] = "自动换行自动换行自动换行自动换行自动换行自动换行自动换行"
bj_sheet["B3"] = "自动调整大小自动调整大小自动调整大小"
bj_sheet["B4"] = "自动缩进空格"
bj_sheet["C1"] = "CCC张三"
bj_sheet["C2"] = "CCC李四"
bj_sheet["C3"] = "CCC王五"
分散对齐
bj_sheet["A1"].alignment = Alignment(horizontal="distributed")
底部对齐
bj_sheet["A2"].alignment = Alignment(vertical="bottom")
居中对齐
bj_sheet["A3"].alignment = Alignment(vertical="center")
上部对齐
bj_sheet["A4"].alignment = Alignment(vertical="top")
旋转30度
bj_sheet["B1"].alignment = Alignment(text_rotation=30)
自动换行
bj_sheet["B2"].alignment = Alignment(wrap_text=True)
自动调整大小
bj_sheet["B3"].alignment = Alignment(shrink_to_fit=True)
自动缩进2个字符
bj_sheet["B4"].alignment = Alignment(indent=2)
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/202201061530.xlsx")
from openpyxl import Workbook
from openpyxl import load_workbook
import pandas as pd
from openpyxl.styles import Alignment, PatternFill, Font
from openpyxl.utils.dataframe import dataframe_to_rows
设置对齐方式(下面内容总结)
wb = Workbook()
ws = wb.active
创建sheet(自己命名和指定位置)
bj_sheet = wb.create_sheet("北京", 0)
sh_sheet = wb.create_sheet("上海", 1)
sz_sheet = wb.create_sheet("深圳", 2)
给指定的sheet赋值
bj_sheet["A1"] = "张三"
bj_sheet["A2"] = "李四"
bj_sheet["A3"] = "王五"
bj_sheet["A4"] = "赵六"
bj_sheet["B1"] = "BBB张三"
bj_sheet["B2"] = "BBB李四"
bj_sheet["B3"] = "BBB王五"
bj_sheet["B4"] = "BBB赵六"
bj_sheet["C1"] = "CCC张三"
bj_sheet["C2"] = "CCC李四"
bj_sheet["C3"] = "CCC王五"
合并单元格
bj_sheet.merge_cells("A2:C2")
解除单元格
bj_sheet.unmerge_cells("A2:C2")
设置合并单元格样式
bj_sheet.merge_cells("A6:F9")
top_left_cell = bj_sheet["A6"]
top_left_cell.value = "My Cell"
top_left_cell.fill = PatternFill("solid", fgColor="DDDDDD")
top_left_cell.font = Font(bold=True, color="FF0000")
top_left_cell.alignment = Alignment(horizontal="center", vertical="center")
批量设置单元格对齐方式
for row in bj_sheet["A1": "C3"]:
# 遍历每一行中的每一列
for c in row:
c.fill = PatternFill("solid", fgColor="DDDDDD")
c.font = Font(bold=True, color="FF0000")
c.alignment = Alignment(horizontal="center", vertical="center")
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/202201061649.xlsx")
import datetime
from openpyxl import Workbook
from openpyxl import load_workbook
import pandas as pd
from openpyxl.styles import Alignment, PatternFill, Font
from openpyxl.utils.dataframe import dataframe_to_rows
设置对齐方式(下面内容总结)
wb = Workbook()
ws = wb.active
创建sheet(自己命名和指定位置)
bj_sheet = wb.create_sheet("北京", 0)
sh_sheet = wb.create_sheet("上海", 1)
sz_sheet = wb.create_sheet("深圳", 2)
给指定的sheet赋值
bj_sheet["A1"] = "123"
bj_sheet["A2"] = "223"
bj_sheet["A3"] = "323"
bj_sheet["A4"] = "423"
bj_sheet["A5"] = "523"
bj_sheet["A6"] = "623"
bj_sheet["A7"] = "723"
bj_sheet["A8"] = "823"
bj_sheet["A9"] = "923"
bj_sheet["B1"] = "BBB张三"
bj_sheet["B2"] = "BBB李四"
bj_sheet["B3"] = "BBB王五"
bj_sheet["B4"] = "BBB赵六"
bj_sheet["C1"] = "CCC张三"
bj_sheet["C2"] = "CCC李四"
bj_sheet["C3"] = "CCC王五"
设置数字格式
bj_sheet["A1"].number_format = "General"
bj_sheet["A2"].number_format = "0.00"
bj_sheet["A3"].number_format = "0%"
bj_sheet["A4"].number_format = "0.00%"
bj_sheet["A5"].number_format = "#,##0"
bj_sheet["A6"].number_format = "0.00E+00"
bj_sheet["A7"] = datetime.datetime(2022, 1, 6, 18, 1, 50)
bj_sheet["A8"] = datetime.datetime(2022, 1, 6, 18, 2, 52)
bj_sheet["A8"].number_format = "mm-dd-yy"
bj_sheet["A9"] = datetime.datetime(2022, 1, 6, 18, 3, 22)
bj_sheet["A9"].number_format = "h:mm:ss"
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/202201061804.xlsx")
import datetime
from openpyxl import Workbook
from openpyxl import load_workbook
import pandas as pd
from openpyxl.formatting.rule import CellIsRule
from openpyxl.styles import Alignment, PatternFill, Font
from openpyxl.utils.dataframe import dataframe_to_rows
设置对齐方式(下面内容总结)
wb = Workbook()
ws = wb.active
data = [[13, 45],
[24, 56],
[31, 53],
[34, 51],
[65, 89],
[81, 50],
[41, 98],
[91, 65],
[76, 80]
]
创建sheet(自己命名和指定位置)
bj_sheet = wb.create_sheet("北京", 0)
sh_sheet = wb.create_sheet("上海", 1)
sz_sheet = wb.create_sheet("深圳", 2)
批量给单元格赋值
for r in data:
bj_sheet.append(r)
筛选符合条件的单元格,并标注颜色。
rule1 = CellIsRule(operator="greaterThan", formula=[50],
fill=PatternFill(end_color="FFFF2100"))
operator="between", formula=[50, 80] 是包含50和80
rule2 = CellIsRule(operator="between", formula=[50, 80],
fill=PatternFill(end_color="FFFF2100"))
bj_sheet.conditional_formatting.add("A1:A10", rule1)
bj_sheet.conditional_formatting.add("B1:B10", rule2)
bj_sheet["C1"] = "CCC张三"
bj_sheet["C2"] = "CCC李四"
bj_sheet["C3"] = "CCC王五"
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/202201062027.xlsx")
import datetime
from openpyxl import Workbook
from openpyxl import load_workbook
import pandas as pd
from openpyxl.formatting.rule import CellIsRule, DataBarRule
from openpyxl.styles import Alignment, PatternFill, Font
from openpyxl.utils.dataframe import dataframe_to_rows
数据条
wb = Workbook()
ws = wb.active
data = [[13, 45],
[24, 56],
[31, 53],
[34, 51],
[65, 89],
[81, 50],
[41, 98],
[91, 65],
[76, 80]
]
创建sheet(自己命名和指定位置)
bj_sheet = wb.create_sheet("北京", 0)
sh_sheet = wb.create_sheet("上海", 1)
sz_sheet = wb.create_sheet("深圳", 2)
批量给单元格赋值
for r in data:
bj_sheet.append(r)
筛选符合条件的单元格,添加数据条,并标注颜色。
rule1 = DataBarRule(start_type="min", end_type="max", color="FF638EC6",
showValue=True)
rule2 = DataBarRule(start_type="min", end_type="max", color="FF638EC6",
showValue=True)
bj_sheet.conditional_formatting.add("A1:A10", rule1)
bj_sheet.conditional_formatting.add("B1:B10", rule2)
bj_sheet["C1"] = "CCC张三"
bj_sheet["C2"] = "CCC李四"
bj_sheet["C3"] = "CCC王五"
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/202201071044.xlsx")
15.1、筛选符合条件的单元格,添加数据条,并标注颜色。 15.2、我们将start_type与end_type最小值和最大值类型都设为’num’, 15.2、那start_value与end_value必须填写数字
import datetime
from openpyxl import Workbook
from openpyxl import load_workbook
import pandas as pd
from openpyxl.formatting.rule import CellIsRule, DataBarRule
from openpyxl.styles import Alignment, PatternFill, Font
from openpyxl.utils.dataframe import dataframe_to_rows
数据条
wb = Workbook()
ws = wb.active
data = [[13, 45],
[24, 56],
[31, 53],
[34, 51],
[65, 89],
[81, 50],
[41, 98],
[91, 65],
[76, 80]
]
创建sheet(自己命名和指定位置)
bj_sheet = wb.create_sheet("北京", 0)
sh_sheet = wb.create_sheet("上海", 1)
sz_sheet = wb.create_sheet("深圳", 2)
批量给单元格赋值
for r in data:
bj_sheet.append(r)
筛选符合条件的单元格,添加数据条,并标注颜色。
我们将start_type与end_type最小值和最大值类型都设为'num',
那start_value与end_value必须填写数字
rule1 = DataBarRule(start_type="num", start_value=1, end_type="num", end_value=100,
color="FF638EC6", showValue=True)
bj_sheet.conditional_formatting.add("A1:B10", rule1)
bj_sheet["C1"] = "CCC张三"
bj_sheet["C2"] = "CCC李四"
bj_sheet["C3"] = "CCC王五"
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/202201071101.xlsx")
16.1、筛选符合条件的单元格,添加数据条,并标注颜色(双色)
16.2、筛选符合条件的单元格,添加数据条,并标注颜色(三色)
import datetime
from openpyxl import Workbook
from openpyxl import load_workbook
import pandas as pd
from openpyxl.formatting.rule import CellIsRule, DataBarRule, ColorScaleRule
from openpyxl.styles import Alignment, PatternFill, Font
from openpyxl.utils.dataframe import dataframe_to_rows
数据条
wb = Workbook()
ws = wb.active
data = [[13, 45],
[24, 56],
[31, 53],
[34, 51],
[65, 89],
[81, 50],
[41, 98],
[91, 65],
[76, 80]
]
创建sheet(自己命名和指定位置)
bj_sheet = wb.create_sheet("北京", 0)
sh_sheet = wb.create_sheet("上海", 1)
sz_sheet = wb.create_sheet("深圳", 2)
批量给单元格赋值
for r in data:
bj_sheet.append(r)
筛选符合条件的单元格,添加数据条,并标注颜色(双色)。
rule1 = ColorScaleRule(start_type="min", start_color="FFFFF0F5",
end_type="max", end_color="FFFF7F00")
筛选符合条件的单元格,添加数据条,并标注颜色(三色)。
rule2 = ColorScaleRule(start_type="percentile", start_value=10, start_color="FFFFE4E1",
mid_type="percentile", mid_value=50, mid_color="FFFFC1C1",
end_type="percentile", end_value=90, end_color="FFFF3030")
bj_sheet.conditional_formatting.add("A1:A10", rule1)
bj_sheet.conditional_formatting.add("B1:B10", rule2)
bj_sheet["C1"] = "CCC张三"
bj_sheet["C2"] = "CCC李四"
bj_sheet["C3"] = "CCC王五"
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/202201071351.xlsx")
import datetime
from openpyxl import Workbook
from openpyxl import load_workbook
import pandas as pd
from openpyxl.formatting.rule import CellIsRule, DataBarRule, ColorScaleRule, IconSetRule
from openpyxl.styles import Alignment, PatternFill, Font
from openpyxl.utils.dataframe import dataframe_to_rows
图标集
wb = Workbook()
ws = wb.active
data = [[13, 45],
[24, 56],
[31, 53],
[34, 51],
[65, 89],
[81, 50],
[41, 98],
[91, 65],
[76, 80]
]
创建sheet(自己命名和指定位置)
bj_sheet = wb.create_sheet("北京", 0)
sh_sheet = wb.create_sheet("上海", 1)
sz_sheet = wb.create_sheet("深圳", 2)
批量给单元格赋值
for r in data:
bj_sheet.append(r)
选择单元格的图标集,三色旗。
rule1 = IconSetRule("3Flags", "percent", [0, 30, 50], showValue=True, reverse=False)
选择单元格的图标集,三向箭头(彩色)。
rule2 = IconSetRule("3Arrows", "percent", [0, 30, 50], showValue=True, reverse=False)
bj_sheet.conditional_formatting.add("A1:A10", rule1)
bj_sheet.conditional_formatting.add("B1:B10", rule2)
bj_sheet["C1"] = "CCC张三"
bj_sheet["C2"] = "CCC李四"
bj_sheet["C3"] = "CCC王五"
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/202201071611.xlsx")
import datetime
from openpyxl import Workbook
from openpyxl import load_workbook
import pandas as pd
插入行和列
wb = Workbook()
ws = wb.active
data = [[13, 45, 76, 80],
[24, 56, 91, 65],
[31, 53, 41, 98],
[34, 51, 81, 50]
]
创建sheet(自己命名和指定位置)
bj_sheet = wb.create_sheet("北京", 0)
sh_sheet = wb.create_sheet("上海", 1)
sz_sheet = wb.create_sheet("深圳", 2)
批量给单元格赋值
for r in data:
bj_sheet.append(r)
拷贝一份,插入的数据
ws1 = wb.copy_worksheet(bj_sheet)
在第3行插入2行
ws1.insert_rows(3, 2)
在第2列插入1列
ws1.insert_cols(2, 1)
print("***********************************")
上海sheet插入数据
for r in data:
sh_sheet.append(r)
上海sheet,在第3行插入2行
sh_sheet.insert_rows(3, 2)
上海sheet,在第2列插入1列
sh_sheet.insert_cols(2, 1)
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/202201071718.xlsx")
import datetime
from openpyxl import Workbook
from openpyxl import load_workbook
import pandas as pd
删除行和列
wb = Workbook()
ws = wb.active
data = [[13, 45, 76, 80],
[24, 56, 91, 65],
[31, 53, 41, 98],
[34, 51, 81, 50]
]
创建sheet(自己命名和指定位置)
bj_sheet = wb.create_sheet("北京", 0)
sh_sheet = wb.create_sheet("上海", 1)
sz_sheet = wb.create_sheet("深圳", 2)
批量给单元格赋值
for r in data:
bj_sheet.append(r)
拷贝一份,插入的数据
ws1 = wb.copy_worksheet(bj_sheet)
删除从第3行开始的2行
ws1.delete_rows(3, 2)
删除从第2列开始的1列
ws1.delete_cols(2, 1)
print("***********************************")
上海sheet插入数据
for r in data:
sh_sheet.append(r)
上海sheet,删除从第3行开始的2行
sh_sheet.delete_rows(3, 2)
上海sheet,删除从第2列开始的1列
sh_sheet.delete_cols(2, 1)
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/202201071817.xlsx")
import datetime
from openpyxl import Workbook
from openpyxl import load_workbook
import pandas as pd
调整设置行和列
wb = Workbook()
ws = wb.active
data = [[13, 45, 76, 80],
[24, 56, 91, 65],
[31, 53, 41, 98],
[34, 51, 81, 50]
]
创建sheet(自己命名和指定位置)
bj_sheet = wb.create_sheet("北京", 0)
sh_sheet = wb.create_sheet("上海", 1)
sz_sheet = wb.create_sheet("深圳", 2)
批量给单元格赋值
for r in data:
bj_sheet.append(r)
调整列的宽度
bj_sheet.column_dimensions["A"].width = 20
调整行的高度
bj_sheet.row_dimensions[1].height = 40
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/202201071837.xlsx")
for 循环遍历
for c in ['A','B','C]:
ws.column_dimensions[c].width = 20
import datetime
from openpyxl import Workbook
from openpyxl import load_workbook
import pandas as pd
隐藏行和列
wb = Workbook()
ws = wb.active
data = [[13, 45, 76, 80, 23, 29],
[24, 56, 91, 65, 31, 36],
[31, 53, 41, 98, 45, 49],
[34, 51, 81, 50, 54, 56],
[124, 156, 191, 165, 131, 136],
[731, 653, 541, 498, 345, 249]
]
批量给单元格赋值
for r in data:
ws.append(r)
隐藏的sheet效果(拷贝的一份数据)
ws1 = wb.copy_worksheet(ws)
隐藏列b 到 d
ws1.column_dimensions.group("b", "d", hidden=True)
隐藏行2 到 3
ws1.row_dimensions.group(2, 3, hidden=True)
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/202201072057.xlsx")
import datetime
from openpyxl import Workbook
from openpyxl import load_workbook
import pandas as pd
批量设置行高和列宽
wb = Workbook()
ws = wb.active
data = [[13, 45, 76, 80, 23, 29],
[24, 56, 91, 65, 31, 36],
[31, 53, 41, 98, 45, 49],
[34, 51, 81, 50, 54, 56],
[124, 156, 191, 165, 131, 136],
[731, 653, 541, 498, 345, 249]
]
批量给单元格赋值
for r in data:
ws.append(r)
批量调整列宽
for col in ["A", "B", "C"]:
ws.column_dimensions[col].width = 20
批量调整行高
for row in range(5):
ws.row_dimensions[row + 1].height = 40
wb.save("C:/Users/Administrator/Desktop/456999/2022/3z/202201072157.xlsx")
import pandas as pd
excel的排序和筛选,只要用pandas科学数据库
读取excel
re_ex = pd.read_excel("C:/Users/Administrator/Desktop/456999/2022/3z/test666.xlsx")
pd_re_ex = pd.DataFrame(re_ex)
print(re_ex)
排序功能
print("**************************,对单列倒序")
str_sort = pd_re_ex.sort_values(by="col1", ascending=False)
print(str_sort)
print("**************************,对多列倒序,升序")
str_sort_more = pd_re_ex.sort_values(by=["col1", "col2"], ascending=[False, True])
print(str_sort_more)
保存在excel中
str_sort_more.to_excel("C:/Users/Administrator/Desktop/456999/2022/3z/202201081545.xlsx")
筛选功能
pd_re_ex_ed = pd.DataFrame(re_ex)
筛选大于2的行
value_sx = pd_re_ex_ed[pd_re_ex_ed["col1"] > 2]
print(value_sx)
筛选等于b的行
value_sx_db = pd_re_ex_ed[pd_re_ex_ed["col2"] == "b"]
print(value_sx_db)
24、
25、
26、
27、
28、
29、
30、
31、
32、
33、
34、
35、
36、
37、
38、
39、
40、
41、
42、
43、
44、
45、
46、
47、
48、
50、
51、
52、
53、
54、
55、
56、
57、
58、
59、
60、
61、
62、
63、
64、
64、
65、
66、
67、
68、
69、
70、
71、
72、
73、
74、
75、
76、
77、
78、
79、
80、
81、
82、
83、
84、
85、
86、
87、
88、
89、
90、
91、
92、
93、
94、
95、
96、
97、
98、
99、
100
Original: https://blog.csdn.net/weixin_54217632/article/details/122317460
Author: Jack_2085
Title: python 对 excel的基本操作(1)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/679108/
转载文章受原作者版权保护。转载请注明原作者出处!