已解决
Python中使用openpyxl的增改查删基础
来自网友在路上 178878提问 提问时间:2023-11-12 20:27:48阅读次数: 78
最佳答案 问答题库788位专家为你答疑解惑
注意:openpyxl只支持Office Open XML
标准的电子表格文件。也就是常见的文件中只支持xlsx
不支持xls
。
一、创建电子表格文件及内容
# 导入openpyxl这个模块
import openpyxl# 创建一个工作簿对象
wb = openpyxl.Workbook()# 1.可以获取当前的活跃工作表,对这个工作表进行写入
# st = wb.active
# 2.也可以创建一个指定名称的工作表,同时还可以传入第二个参数指定创建位置(默认在最后)
st = wb.create_sheet("s_sheet2",0)
# 1.通过工作表坐标方式进行访问写入
st["A1"] = 1
st["B1"] = 2wb.create_sheet("test_sheet")# 2.通过cell()使用行列坐标进行访问写入
# 然后这儿我们写入一个公式,让我们打开表格后通过公式得到结果
st.cell(1,3).value = "=SUM(A1:B1)"# 3.可以将可遍历体逐行写入sheet中
rows_l = [[99,100,"=SUM(A2:B2)"],[101,102,"=SUM(A3:B3)"]]
for _row_l in rows_l:st.append(_row_l)save_path = "D:\\1.xlsx"
wb.save(save_path)
二、访问修改电子表格文件
# 读取表格
save_path = "D:\\1.xlsx"
# 读取一个电子表格文件
wb = openpyxl.load_workbook(save_path)# 1.获取当前活跃工作表
# st = wb.active# 2.还可以获取当前工作簿中的所有工作表名,然后根据下标去获取工作表名
# st = wb[wb.sheetnames[1]]# 3.还可以获取当前工作簿中的所有工作表名,然后根据下标去获取工作表名
st = wb['s_sheet2']# 1.以通过工作表坐标访问
# 在这儿要注意:写入时可以不写.value,但读取时不写这个就获取不到值
a1_v = st["A1"].value# 2.通过cell()使用行列访问
b1_v = st.cell(1,2).value
c1_v = st.cell(1,3).valueprint(a1_v,b1_v,c1_v)# 3.使用范围运算符读取数据
# 注意这儿获取到的rows中是一个嵌套元组
# 内容:((单元格值1,单元格值2),(单元格值3,单元格值4))
# rows_t = st[st.dimensions] #st.dimensions获取到的的是最大内容范围
rows_t = st["A2":"C3"]
for _row_t in rows_t:for _col in _row_t:print(_col.value,end="\t")print("") # 4.还可以通过iter_rows()按行迭代进行访问
# 因为此方法还有其他参数,建议通过命名参数进行使用,参数如下:
# min_row=None, max_row=None, min_col=None, max_col=None
for _row_t in st.iter_rows(min_row=2,max_row=3,min_col=1, max_col=2):for _cell in _row_t:print(_cell.value,end="\t")print("")# 5.当然还可以通过iter_cols()按列迭代进行访问
# 因为这个方法没有其他参数,可以按顺序输入参数即可,参数如下:
# min_row=None, max_row=None, min_col=None, max_col=None
# 可以使用st.min_row,st.max_row,st.min_col,st.max_col获取内容的最大最小行列
for _col_t in st.iter_cols(st.min_row,st.max_row,st.min_col,st.max_col):for _cell in _col_t:print(_cell.value,end="\t")print("")# 6.可以使用rows获取
# 注意这儿获取到的rows中是一个嵌套元组
# 内容:((单元格值1,单元格值2),(单元格值3,单元格值4))
for _row_t in st.rows:for _cell in _row_t:print(_cell.value,end="\t")print("")# 7.可以使用columns获取
# 注意这儿获取到的colnums中是一个嵌套元组
# 内容:((单元格值1,单元格值2),(单元格值3,单元格值4))
for _clonum_t in st.columns:for _cell in _clonum_t:print(_cell.value,end="\t")print("")# 最后我们还可以删除不需要的工作表
wb.remove(wb["test_sheet"])
# 因为进行了删除操作,所以需要保存一下
# 当然保存的路径可以换到其他位置(这就相当于是另存为了)
wb.save(save_path)
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"Python中使用openpyxl的增改查删基础":http://eshow365.cn/6-38370-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!