龙空技术网

openpyxl读写Excel文件代码示例

python刀客 96

前言:

而今朋友们对“打开文件python代码”大约比较关注,各位老铁们都想要知道一些“打开文件python代码”的相关知识。那么小编在网摘上网罗了一些对于“打开文件python代码””的相关知识,希望看官们能喜欢,兄弟们快快来学习一下吧!

#视情况确定引入必要的方法或类from openpyxl import load_workbook, open, Workbookfrom openpyxl.styles import Alignment, Border, Side, Color, PatternFill, GradientFill, Font, DEFAULT_FONT, Protection, Namestyle#下面两行代码用于解决openpyxl设置列宽的"缩水"问题,在新建工作簿前运行#需要设置列宽时,在列宽字符数后加上5/8,#默认字体字号不同,增加值不同,比如宋体/Arial 10磅 +5/7DEFAULT_FONT.name='宋体'DEFAULT_FONT.size=11   #磅一、操作工作簿#打开工作簿1. wb=load_workbook('文件.xlsx')  #常用2. wb=open('文件.xlsx')  #不常用#关闭工作簿wb.close()#新建工作簿wb=Workbook()#保存工作簿wb.save('文件.xlsx')二、操作工作表#获取当前工作表,新建工作簿后就会自动生成一个工作表sheet=wb.active#获取特定工作表1. sheet=wb['Sheet1']2. sheet=wb.get_sheet_by_name('Sheet1')#新建工作表sheet=wb.create_sheet('Sheet1', 0)#新建图表sheet=wb.create_chartsheet()#删除工作表wb.remove(sheet)#命名工作表sheet.title='Sheet1'#更多工作表方法sheet.add_chartsheet.add_data_validationsheet.add_imagesheet.add_pivotsheet.add_tablesheet.delete_colssheet.delete_rowssheet.insert_colssheet.insert_rowssheet.freeze_panes#设置行高sheet.row_dimensions[1].height=17  #17磅#设置列宽sheet.column_dimensions['A'].width=10+5/8  (10字符宽,默认字体为宋体11磅时加5/8)#设置页眉(所有页眉格式相同时,仅设置oddHeader)sheet.oddHeader.center.text = 'Page &[Page] of &[Pages]'#设置奇偶页眉不同sheet.HeaderFooter.differentOddEven=Truesheet.oddHeader.center.text = 'Page &[Page] of &[Pages]'sheet.evenHeader.center.text = '&[Pages]'#设置首页页眉sheet.firstHeader.center.text='Page &[Page] of &[Pages]'#设置页脚(所有页脚格式相同时,仅设置oddFooter)sheet.oddFooter.center.text = 'Page &[Page] of &[Pages]'#设置奇偶页脚不同sheet.HeaderFooter.differentOddEven=Truesheet.oddFooter.center.text = 'Page &[Page] of &[Pages]'sheet.evenFooter.center.text = '&[Pages]'#设置首页页脚sheet.firstFooter.center.text='Page &[Page] of &[Pages]'#设置纸张和方向(一般使用默认值,除非特殊需要)sheet.page_setup.paperSize=9  #默认9, 即A4sheet.page_setup.orientation='default'  #default|portrait|landscape#设置边距  单位英寸 1英寸=2.54厘米sheet.page_margins.top=1		#默认1英寸sheet.page_margins.bottom=1		#默认1英寸sheet.page_margins.left=0.75		#默认0.75英寸sheet.page_margins.right=0.75		#默认0.75英寸sheet.page_margins.header=0.5	#默认0.5英寸sheet.page_margins.footer=0.5		#默认0.5英寸#设置打印页面时内容居中sheet.print_options.horizontalCentered=True  #水平居中sheet.print_options.verticalCentered=False      #垂直居中#更多打印设置sheet.page_setupsheet.print_titlessheet.print_area='A1:D4'sheet.print_title_cols='A:C'sheet.print_title_rows='1:3'三、操作单元格#访问单元格1. sheet['A1']2. sheet.cell(1,1)3. sheet.cell(1,1).offset(0,2)  #访问偏移单元格#写单元格1. sheet['A1']='hello'  | sheet['A1'].value='hello'  #使用sheet['A1']访问单元格时,可以省略value2. sheet.cell(1,1, 'hello')  #不提倡3. sheet.cell(1,1).value='hello'   #使用sheet.cell(1,1)访问单元格时,不能省略value4. sheet.cell(1,1, 'hello').font.name='宋体'  #一行代码做两件事5. sheet.append([1,2,3])  #只能从表格结尾首列起写入,有局限性6. sheet.cell(1,1).hyperlink=';  #写入超链#遍历单元格sheet.columnssheet.rowssheet.iter_cols()sheet.iter_rows()sheet.valuessheet['A']  #返回A列所有单元格sheet['A:C']  #返回前三列所有单元格sheet[1]   #返回第1行所有单元格sheet[1:3]  #返回前3行所有单元格for cell in sheet['a1:d4'][0]:  #不能省略[0]    cell.value=10#单元格合并和解除sheet.merge_cellssheet.unmerge_cells#设置格式和样式  样式是格式的组合,即:一个样式可以包含多个格式。#设置单元格格式对应Excel设置单元格格式对话框中的数字,对齐,字体,边框,填充,保护#数字  sheet['A1'].number_format='General'  #可以设置的值见数字格式列表#对齐  sheet['A1'].alignment=Alignment(horizontal='left', vertical='center')  #更多参数见print(Alignment())#字体  sheet['A1'].font=Font(name="Arial", size=14, bold=True)                  #更多参数见 print(Font())#边框            thin = Side(border_style="thin", color=pink)          sheet['A1'].border=Border(left=thin, right=thin, top=thin, bottom=thin)   #更多参数见print(Border())#填充          sheet['A1'].fill = PatternFill(start_color='FF0000', end_color='FF0000', fill_type = "solid")          sheet['A1'].fill = GradientFill(stop=("000000", "FFFFFF"))  #渐变填充#保护  sheet['a1'].protection=Protection(hidden=False, locked=True)  #不常用#数字格式列表  参见openpyxl/styles/numbers.py    0: 'General',    1: '0',    2: '0.00',    3: '#,##0',    4: '#,##0.00',    5: '"$"#,##0_);("$"#,##0)',    6: '"$"#,##0_);[Red]("$"#,##0)',    7: '"$"#,##0.00_);("$"#,##0.00)',    8: '"$"#,##0.00_);[Red]("$"#,##0.00)',    9: '0%',    10: '0.00%',    11: '0.00E+00',    12: '# ?/?',    13: '# ??/??',    14: 'mm-dd-yy',    15: 'd-mmm-yy',    16: 'd-mmm',    17: 'mmm-yy',    18: 'h:mm AM/PM',    19: 'h:mm:ss AM/PM',    20: 'h:mm',    21: 'h:mm:ss',    22: 'm/d/yy h:mm',    37: '#,##0_);(#,##0)',    38: '#,##0_);[Red](#,##0)',    39: '#,##0.00_);(#,##0.00)',    40: '#,##0.00_);[Red](#,##0.00)',    41: r'_(* #,##0_);_(* \(#,##0\);_(* "-"_);_(@_)',    42: r'_("$"* #,##0_);_("$"* \(#,##0\);_("$"* "-"_);_(@_)',    43: r'_(* #,##0.00_);_(* \(#,##0.00\);_(* "-"??_);_(@_)',    44: r'_("$"* #,##0.00_)_("$"* \(#,##0.00\)_("$"* "-"??_)_(@_)',    45: 'mm:ss',    46: '[h]:mm:ss',    47: 'mmss.0',    48: '##0.0E+0',    49: '@'#使用内置样式,不需要引入builtins模块。可用内置样式见内置样式列表sheet['A1'].style='Title'#内置样式列表 参见openpyxl/styles/builtins.pyfrom openpyxl.styles import builtinsbuiltins.styles.keys()dict_keys(['Normal', 'Comma', 'Currency', 'Percent', 'Comma [0]', 'Currency [0]', 'Hyperlink', 'Followed Hyperlink', 'Note', 'Warning Text', 'Title', 'Headline 1', 'Headline 2', 'Headline 3', 'Headline 4', 'Input', 'Output', 'Calculation', 'Check Cell', 'Linked Cell', 'Total', 'Good', 'Bad', 'Neutral', 'Accent1', '20 % - Accent1', '40 % - Accent1', '60 % - Accent1', 'Accent2', '20 % - Accent2', '40 % - Accent2', '60 % - Accent2', 'Accent3', '20 % - Accent3', '40 % - Accent3', '60 % - Accent3', 'Accent4', '20 % - Accent4', '40 % - Accent4', '60 % - Accent4', 'Accent5', '20 % - Accent5', '40 % - Accent5', '60 % - Accent5', 'Accent6', '20 % - Accent6', '40 % - Accent6', '60 % - Accent6', 'Explanatory Text', 'Pandas'])#使用自定义样式(namedstyle) ,可以一行代码为单元格设置多个格式。#ns=NamedStyle(name=, font=, fill=, border=, alignment=, number_format=, protection=)#示例:font=Font(name='Calibri', bold=True, size=22)thick=Side(style='thick', color='FF0000')border=Border(left=thick, right=thick, top=thick, bottom=thick)ud=NamedStyle(name='ud', font=font, border=border)sheet['A1'].style=ud

标签: #打开文件python代码