zoukankan      html  css  js  c++  java
  • pytohn 操作excel表格常用模块 xlwt xlsxwriter

    1、导入模块
      import xlwt
    2、创建workbook(其实就是excel,后来保存一下就行)
      workbook = xlwt.Workbook(encoding = 'ascii')
    3、创建表
      worksheet = workbook.add_sheet('My Worksheet')
    4、往单元格内写入内容
      worksheet.write(0, 0, label = 'Row 0, Column 0 Value')
    5、保存
      workbook.save('Excel_Workbook.xls')
    由于我的需求比较简单,所以这上面没遇到什么问题,唯一的就是建议还是用ascii编码,不然可能会有一些诡异的现象。今天主要写一些xlwt与xlsxwriter的区别。先来看看简单的xlwt写文件
     1 import xlwt
     2 # 创建一个workbook 设置编码
     3 workbook = xlwt.Workbook(encoding = 'utf-8')
     4 # 创建一个worksheet
     5 worksheet = workbook.add_sheet('My Worksheet')
     6 # 写入excel
     7 # 参数对应 行, 列, 值
     8 ''' height:行高;
     9     name:字体
    10     bold:字体加粗
    11     wrap :自动换行
    12     horiz:水平对其方式
    13     vert:垂直对齐方式. top center 
    14     pattern :背景样式 solid,
    15     fore-colour: 单元格背景颜色   grey25;
    16     border: 边框线
    17     
    18     
    19 '''
    20 def set_widths(sheet, width_list):
    21     '''���ù�������п��б�'''
    22     for index, w in enumerate(width_list):
    23         sheet.col(index).width = w
    24 cell_xf = xlwt.easyxf('''
    25             font:
    26                 height 220,
    27                 name SimSun;
    28             align:
    29                 wrap on,
    30                 vert centre,
    31                 horiz left;
    32             borders:
    33                 left THIN,
    34                 right THIN,
    35                 top THIN,
    36                 bottom THIN;
    37         ''')
    38 # worksheet.col(3).width = 256 * 16   设置宽度
    39 # worksheet.col(4).width = 256 * 18
    40 # worksheet.write(0,0,label = 'this is test',style=style)
    41 # worksheet.write(0,2,label = 'this',style=style)
    42 # worksheet.write(4,3,label = 'this is',style=cell_xf)
    43 # import time,datetime
    44 # time=datetime.datetime.now()
    45 # worksheet.row(4).set_cell_date(6,time,cell_xf)
    46 worksheet.write_merge(0,4,2,4,'88888888888',cell_xf)  #合并单元格
    47 
    48 
    49 
    50 # 保存
    51 workbook.save('Excel_test31.xls')   #生成excele表格,保存文件名
    View Code

    然后是xlsxwriter写入

     1 def set_widths(sheet, width_list):
     2     '''���ù�������п��б�'''
     3     for index, w in enumerate(width_list):
     4         sheet.set_column(1,index,w)
     5 from xlsxwriter.workbook import Workbook
     6 
     7 workbook = Workbook('Demo770.xlsx')    # 创建一个名为Dome2.xlsx的表格
     8 # header_format = workbook.add_format({
     9 #             'bg_color': 'blue',
    10 #             'bold': True,
    11 #             'text_wrap': True,
    12 #             'valign': 'vcenter',
    13 #             'indent': 1,
    14 #         })
    15 
    16 report_title_xf = workbook.add_format({
    17     'font_name': 'SimSun',       #字体
    18     'bold': True,                 #是否加粗
    19     'text_wrap': True,           #是否自动换行
    20     'valign': 'vcenter',         #垂直对齐方式
    21     'align': 'left',             #水平对齐
    22     # 'fg_color': '#436EEE',       #前景色
    23 
    24     'bg_color': '#cccccc    ',     #背景色
    25     'pattern':1,               #阴影样式
    26     'bottom': 1                 #边框线
    27     'left': 1,                  #边框线
    28     'right': 1,                 #边框线
    29     'top': 1,                   #边框线
    30     'num_format': 'yyyy-mm-dd' #时间格式
    31 })
    32 
    33 
    34 
    35 
    36 worksheet = workbook.add_worksheet('xxxx')  # 添加工作表
    37 # report_title_xf=worksheet.set_row(0, 100, report_title_xf)    设置单元格高度
    38 
    39 # set_widths(worksheet,[15,30,7.5,7.5,15,15,38,38,38,38])   设置单元格宽度(14行一个函数实现)
    40 
    41 
    42 # worksheet.set_column('A:A', 18)设置宽度
    43 worksheet.set_column('B:B',10)#设置宽度
    44 worksheet.set_column('C:C',10)
    45 worksheet.set_column(3,3,30)
    46 worksheet.set_column(0,0,50)
    47 
    48 # worksheet.set_row(1,40)
    49 
    50 
    51 worksheet.write('C1','6666666666666 ',report_title_xf)#写入工作表(1. 写入位置2. 写入数据3.表格样式
    52 # worksheet.merge_range(3,2,0,4,'8585858585',report_title_xf) 合并单元格参数(first_row,first_cow.last_row,last_cow,data 样式)
    53 worksheet.merge_range(0,2,4,4,'8585858585',report_title_xf)#xlsxwriter当单元格跨度为1时无法合并
    54 workbook.close()

    还有一个在项目中用到的时间日期格式化

    vul_info_sheet.row(row_index).set_cell_date(colx_start+tmp_col_index+9, date_found,cell_date_xf)
                            vul_info_sheet.write_datetime(_index, col_index, date_found, cell_date_xf)#cell_data_xf单元格样式         date_found是datetime格式
  • 相关阅读:
    linux软件包安装yum
    linux软件包安装rpm
    使用OwnCloud建立属于自己私有的云存储网盘
    Linux 防火墙
    Linux docker
    llinux 权限2
    详列JDK中的设计模式(二)结构型
    详列JDK中的设计模式(一)创建型
    JavaWeb学习总结(一) JavaWeb基础与Tomcat服务器
    老生常谈-从输入url到页面展示到底发生了什么
  • 原文地址:https://www.cnblogs.com/nanyu/p/9790817.html
Copyright © 2011-2022 走看看