xlrd openpyxl 库
应该是自带了,反正我是没安装,csv也可制作表格,关于csv以后介绍
基本操作
import xlrd book = xlrd.open_workbook('filename') book.nsheets # 表单数量 book.sheet_names() # 表单名 要读取某个表单里单元格中的数据,必须要先获取 表单(sheet)对象 。 # 表单索引从0开始,获取第一个表单对象 book.sheet_by_index(0) # 获取名为2018的表单对象 book.sheet_by_name('2018') # 获取所有的表单对象,放入一个列表返回 book.sheets() 官方文档:https://xlrd.readthedocs.io/en/latest/api.html#xlrd-sheet 表单行数(nrows) 列数(ncols) 表单名(name) 表单索引(number) ''' book = xlrd.open_workbook("income.xlsx") sheet = book.sheet_by_index(0) sheet.name sheet.number sheet.nrows sheet.ncols ''' cell_value 方法,参数为行号和列号,读取指定单元格中的文本内容。 sheet.cell_value(rowx=0, colx=0) row_values 方法,参数为行号,读取指定行所有单元格的内容,存放在一个列表中返回。 sheet.row_values(rowx=0) col_values 方法,参数为列号,读取指定列所有单元格的内容,存放在一个列表中返回。 sheet.col_values(colx=0) 其他参数可自己看源码 =_=
import openpyxl # 创建一个Excel workbook 对象 book = openpyxl.Workbook() # 创建时,会自动产生一个sheet,通过active获取 sh = book.active # 修改当前 sheet 标题为 工资表 sh.title = '工资表' # 保存文件 book.save('信息.xlsx') # 增加一个名为 '年龄表' 的sheet,放在最后 sh1 = book.create_sheet('年龄表-最后') # 增加一个 sheet,放在最前 sh2 = book.create_sheet('年龄表-最前',0) # 增加一个 sheet,指定为第2个表单 sh3 = book.create_sheet('年龄表2',1) # 根据名称获取某个sheet对象 sh = book['工资表'] # 给第一个单元格写入内容 sh['A1'] = '你好' # 获取某个单元格内容 print(sh['A1'].value) # 根据行号列号, 给第一个单元格写入内容, # 注意和 xlrd 不同,是从 1 开始 sh.cell(2,2).value = 'zzz' # 根据行号列号, 获取某个单元格内容 print(sh.cell(1, 1).value) book.save('信息.xlsx') name2Age = { '张飞' : 38, '赵云' : 27, '许褚' : 36, '典韦' : 38, '关羽' : 39, '黄忠' : 49, '徐晃' : 43, '马超' : 23, } # 创建一个Excel workbook 对象 book = openpyxl.Workbook() # 创建时,会自动产生一个sheet,通过active获取 sh = book.active sh.title = '年龄表' # 写标题栏 sh['A1'] = '姓名' sh['B1'] = '年龄' # 写入内容 row = 2 for name,age in name2Age.items(): sh.cell(row, 1).value = name sh.cell(row, 2).value = age row += 1 # 保存文件 book.save('信息.xlsx')
import openpyxl # 加载 excel 文件 wb = openpyxl.load_workbook('income.xlsx') # 得到sheet对象 sheet = wb['2017'] sheet['A1'] = '修改一下' ## 指定不同的文件名,可以另存为别的文件 wb.save('income-1.xlsx') insert_rows 和 insert_cols 方法,分别用来插入 行 和 列 wb = openpyxl.load_workbook('income.xlsx') sheet = wb['2018'] # 在第2行的位置插入1行 sheet.insert_rows(2) # 在第3行的位置插入3行 sheet.insert_rows(3,3) # 在第2列的位置插入1列 sheet.insert_cols(2) # 在第2列的位置插入3列 sheet.insert_cols(2,3) delete_rows 和 delete_cols 方法,分别用来插入 行 和 列 wb = openpyxl.load_workbook('income.xlsx') sheet = wb['2018'] # 在第2行的位置删除1行 sheet.delete_rows(2) # 在第3行的位置删除3行 sheet.delete_rows(3,3) # 在第2列的位置删除1列 sheet.delete_cols(2) # 在第3列的位置删除3列 sheet.delete_cols(3,3)
文字 颜色、字体、大小、下划线 等 import openpyxl # 导入Font对象 和 colors 颜色常量 from openpyxl.styles import Font,colors wb = openpyxl.load_workbook('income.xlsx') sheet = wb['2018'] # 指定单元格字体颜色, sheet['A1'].font = Font(color=colors.RED, #使用预置的颜色常量 size=15, # 设定文字大小 bold=True, # 设定为粗体 italic=True # 设定为斜体 ) # 也可以使用RGB数字表示的颜色 sheet['B1'].font = Font(color="981818") # 指定整行 字体风格, 这里指定的是第3行 font = Font(color="981818") for y in range(1, 100): # 第 1 到 100 列 sheet.cell(row=3, column=y).font = font # 指定整列 字体风格, 这里指定的是第2列 font = Font(bold=True) for x in range(1, 100): # 第 1 到 100 行 sheet.cell(row=x, column=2).font = font wb.save('income-1.xlsx') 背景色 import openpyxl # 导入Font对象 和 colors 颜色常量 from openpyxl.styles import PatternFill wb = openpyxl.load_workbook('income.xlsx') sheet = wb['2018'] # 指定 某个单元格背景色 sheet['A1'].fill = PatternFill("solid", "E39191") # 指定 整行 背景色, 这里指定的是第2行 fill = PatternFill("solid", "E39191") for y in range(1, 100): # 第 1 到 100 列 sheet.cell(row=2, column=y).fill = fill wb.save('income-1.xlsx') 插入图片 import openpyxl from openpyxl.drawing.image import Image wb = openpyxl.load_workbook('income.xlsx') sheet = wb['2018'] # 在第1行,第4列 的位置插入图片 sheet.add_image(Image('1.png'), 'D1') ## 指定不同的文件名,可以另存为别的文件 wb.save('income-1.xlsx')
来源:https://www.cnblogs.com/JcrLive/p/12548679.html