专栏导读
-
🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手
-
-
-
-
📕 此外还有python基础专栏:请点击——>Python基础学习专栏求订阅
-
文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏
-
❤️ 欢迎各位佬关注! ❤️
常见读取Excel的库
-
首先python读取Excel的库有很多,包括xlwings,pandas,xlrd等等,我比较常用的是openpyxl,以及pandas,当然还有喜欢将数据量比较大的Excel转为csv格式再读取。
-
今天我们用openpyxl来读取excel文件,读取的时候可以将每一行的信息转为列表,最重要的是,可以输出每一行的行号,这样后期就可以修改单元格的内容,就可以靠行号
第 1 步,读取
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/dbf7bbcb66a1ab7810f956750f080eb0.gif)
代码:
import os
import openpyxl
workbook = openpyxl.load_workbook('./数据源/'+os.listdir('./数据源/')[0])
worksheet = workbook.active
for i, row in enumerate(worksheet.iter_rows(values_only=True), 1):
d = list(row)
print(f"行{i}",d)
第2 步,修改
-
如我在K列,增加了一列把上述代码的行号填充进去
-
worksheet[“K{行号}”] = 赋值
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/7996f6673e5b570df5d365b59a356df7.png)
-
哈哈,第一行忘记跳过了(加个continue),不过不影响,数据的行号填充的是对的(下面代码是对的)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/fc4f1e8b04c3c6008036b42bfdbfae83.gif)
import os
import openpyxl
workbook = openpyxl.load_workbook('./数据源/'+os.listdir('./数据源/')[0])
worksheet = workbook.active
for i, row in enumerate(worksheet.iter_rows(values_only=True), 1):
if i== 1:
continue
d = list(row)
worksheet[f"K{i}"] = i
print(f"行{i}",d)
workbook.save("./结果.xlsx")
设置单元格宽、高,以及底色
-
我们给 B 列设置宽一点
-
`worksheet.column_dimensions['B'].width = 15`
-
`worksheet.column_dimensions['1'].height = 15` # 这是这是第一行的 行高,以此类推
-
设置单元格底色
-
`worksheet[’A1'].fill = PatternFill("solid", fgColor="3CB371")` # 如将A1单元格设置【"3CB371"】这个颜色,这是16进制颜色
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6d4f36feefda6ba7dad2a72b5a040253.gif)
代码
import os
import openpyxl
from openpyxl.styles import PatternFill
workbook = openpyxl.load_workbook('./数据源/'+os.listdir('./数据源/')[0])
worksheet = workbook.active
worksheet.column_dimensions['C'].width = 20
d2 = {i:chr(i+64) for i in range(1, 27)}
for i, row in enumerate(worksheet.iter_rows(values_only=True), 1):
k = i
if k<=11:
worksheet[d2[k]+'1'].fill = PatternFill("solid", fgColor="3CB371")
if i== 1:
continue
d = list(row)
worksheet[f"K{i}"] = i
print(f"行{i}",d)
workbook.save("./结果.xlsx")
设置字体字号
代码
import openpyxl
from openpyxl.styles import Font
def f2():
wb = openpyxl.load_workbook('./结果/'+os.listdir("./结果/")[0])
ws = wb.active
for cell in ws[1]:
cell.font = Font(name='微软雅黑', size=10, bold=True)
for row in ws.iter_rows(min_row=2):
for cell in row:
cell.font = Font(name='微软雅黑', size=9)
wb.save('结果/最终结果.xlsx')
f2()
总结
-
希望对初学者有帮助
-
致力于办公自动化的小小程序员一枚
-
希望能得到大家的【一个免费关注】!感谢
-
求个 🤞 关注 🤞
-
-
求个 ❤️ 喜欢 ❤️
-
-
求个 👍 收藏 👍
-