Python学習——Excel読み書きモジュール(xlwt/xlrd)


xlwt/xlrdモジュール
Excelを読み書きする拡張ツール
xlwtモジュール
xlsファイルwriteライブラリ、書くことしかできなくて、指定のフォーム、指定のセルの書くことを実現することができます
xlrdモジュール
xlsファイルreadライブラリは、読み取り専用で、指定フォーム、指定セルの読み取りを実現できます.
1.xlwtモジュール
  • xlsファイルオブジェクトdataの作成/保存:
  • data = xlwt.Workbook(encoding = 'ascii')	#encoding  :
    data.save('excelFile.xls')
    
  • 表の作成:sheetページ
  • worksheet = data.add_sheet('new_sheet')
  • sheetページへの操作:
  • #       
    worksheet.write(row_x, col_y, label = 'Value')
    
    #        
    worksheet.write_merge(x, x + m, y, w + n, string, sytle)	#x ,y ,m      ,n      ,string             ,style       (x/y/w/h  0    )
    worksheet.write_merge(21,21,0,1,u'  ',set_style('Times New Roman',220,True))#  22    1,2 ,          "  ",    style
    

    2.xlrdモジュール
  • xlsファイルオブジェクトdataの作成:
  • data = xlrd.open_workbook('excelFile.xls')
    
  • xlsファイル(表)への操作:sheetページ
  • #        sheet 
    table = data.sheets()[0] 
    table = data.sheet_by_index(0) 
    
    #      sheet 
    sheet1= data.sheet_by_name(u'Sheet1')
    
  • sheetページのプロパティ:row行、column列、valueセルの値
  • #    /  ,    
    row_list=sheet1.row_values(i)
    col_list=sheet1.col_values(i)
    #   /   
    row_len = table.nrows
    col_len = table.ncols
    #  value,   /   
    val = sheet1.cell(row_x, col_x).value
    val = sheet1.row(0)[0].value
    val = sheet1.col(1)[0].value
    #  value
    sheet1.put_cell(row, col, ctype, value, xf) #xf       
    

    3.セルの内容の5種類
  • ctype:0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error

  • 特殊型データの読み出し処理に注意:1.時間タイプの読み取りと変換
    #       ,  ctype          
    if (sheet1.cell(row,col).ctype == 3):  
    	# data    (    )
      date_value = xlrd.xldate_as_tuple(sheet1.cell_value(rows,3),book.datemode)  
      	#       
      date_tmp = date(*date_value[:3]).strftime('%Y/%m/%d')  
    
    #       
    xlrd.xldate_as_tuple(sheet1.cell(0,0).value, 0)		#  tuple
    xlrd.xldate_as_datetime(sheet1.cell(0,0).value, 0)	#  datetime  
    
  • セルの読み込みと書き込みをマージ
  • #  :          ,                   ,     ;     #1.    xlrd    xls   ,  formatting_info     True(  False)
    #2.   sheet1  ,  merged_cells  ,         
    sheet1.merged_cells	#    :[(row, row_range, col, col_range),  ...], (1,3,4,5)             
    
    #  :                  ,     
    sheet.write_merge(x, x+m, y, y+n, string, style)	#  x  x+m ,y  y+n       , style    string( /     0  )
    

    .ctype
    valueタイプの表示
    xlrd.xldate_as_tuple()
    data形式のデータを返す
    sheet1.merged_cells
    連結セルの読み込み:formatting_infoパラメータをTrueに設定(デフォルトFalse)