首先python读取Excel的库有很多,包括xlwings,pandas,xlrd等等,我比较常用的是openpyxl,以及pandas,当然还有喜欢将数据量比较大的Excel转为csv格式再读取。
今天我们用openpyxl来读取excel文件,读取的时候可以将每一行的信息转为列表,最重要的是,可以输出每一行的行号,这样后期就可以修改单元格的内容,就可以靠行号
第 1 步,读取
代码:
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{行号}”] = 赋值
哈哈,第一行忘记跳过了(加个continue),不过不影响,数据的行号填充的是对的(下面代码是对的)
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进制颜色
代码
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" )
希望对大家有帮助
致力于办公自动化的小小程序员一枚
都看到这了,关注+点赞+收藏=不迷路!!
如果你想知道更多关于Python办公自动化的知识各位大佬给个关注吧!