zoukankan      html  css  js  c++  java
  • 【Python学习】操作excel样例

    1、写入并读取excel表格的数据

    复制代码
      1 #!usr/bin/python
      2 #-*- coding: UTF-8 -*-
      3 #Author:mollsweet
      4 import xlwt
      5 import xlrd
      6 from datetime import *
      7 import sys
      8 import traceback
      9 from datetime import datetime
     10 from xlrd import xldate_as_tuple
     11 from xlutils.copy import copy #复制原excel格式
     12 reload(sys)
     13 sys.setdefaultencoding('utf-8')
     14 account_date=datetime.now().strftime('%Y/%m/%d %H:%M:%S')#获取当前系统日期
     15 path=r"F:PyCharm 2017.2.3PycharmProjects20190304filemoll_excel.xls"
     16 path01=r"F:PyCharm 2017.2.3PycharmProjects20190304filemollnew_excel.xls"
     17 def write_excel():
     18     book = xlwt.Workbook(encoding='utf-8', style_compression=0)#创建excel表格
     19     sheet = book.add_sheet('工作簿01', cell_overwrite_ok=True)#表格中添加工作簿
     20 
     21     # 第range(0,3):2列的宽度,也可以循环设置整个工作簿的宽度
     22     for i in list(range(0,3)):
     23         sheet.col(i).width = 7000
     24     sheet.col(0).width = 3000
     25 
     26     #设置标题的背景颜色为蓝色
     27     pattern = xlwt.Pattern() # Create the Pattern
     28     pattern.pattern = xlwt.Pattern.SOLID_PATTERN # May be: NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12
     29     pattern.pattern_fore_colour = 3 # May be: 8 through 63. 0 = Black, 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow, 6 = Magenta, 7 = Cyan, 16 = Maroon, 17 = Dark Green, 18 = Dark Blue, 19 = Dark Yellow , almost brown), 20 = Dark Magenta, 21 = Teal, 22 = Light Gray, 23 = Dark Gray, the list goes on...
     30     style = xlwt.XFStyle() # Create the Pattern
     31     style.pattern = pattern # Add Pattern to Style
     32     # sheet.write(0, 0, 'Cell Contents', style) #将样式写入表格
     33 
     34     ##横向标题
     35     txt0 = '数据类型'
     36     sheet.write(0, 0, txt0.decode('utf-8'),style)  # 此处需要将中文字符串解码成unicode码,否则会报错,弄成英文将不用转换格式
     37     txt1 = '内容'
     38     sheet.write(0, 1, txt1.decode('utf-8'),style)
     39     txt2 = '备注'
     40     sheet.write(0, 2, txt2.decode('utf-8'),style)
     41 
     42     #写入第一列的内容
     43     sheet.write(1, 0, '整型'.decode('utf-8'))
     44     sheet.write(2, 0, '字符串'.decode('utf-8'))
     45     sheet.write(3, 0, '浮点型'.decode('utf-8'))
     46     sheet.write(4, 0, '日期'.decode('utf-8'))
     47     sheet.write(5, 0, '空值'.decode('utf-8'))
     48     sheet.write(6, 0, '布尔型'.decode('utf-8'))
     49 
     50     #写入第2列的内容
     51     sheet.write(1, 1, 12000)
     52     sheet.write(2, 1, '心里有光,眼里有太阳'.decode('utf-8'))
     53     sheet.write(3, 1, 12000.99)
     54     sheet.write(4, 1, account_date)
     55     sheet.write(5, 1, )
     56     sheet.write(6, 1, True)
     57     note="备注数据"
     58     # 写入第3列的内容
     59     sheet.write(1, 2, note)
     60     sheet.write(2, 2, note)
     61     sheet.write(3, 2, note)
     62     sheet.write(4, 2, note)
     63     sheet.write(5, 2,note )
     64     sheet.write(6, 2, note)
     65 
     66     book.save(path)
     67     print "创建工作表格成功!"
     68     print ""
     69 
     70 ############################读出表格的内容
     71 class excelHandle:
     72     def decode(self, filename, sheetname):
     73         try:
     74             filename = filename.decode('utf-8')
     75             sheetname = sheetname.decode('utf-8')
     76         except Exception:
     77             print traceback.print_exc()
     78         return filename, sheetname
     79 
     80     def read_excel(self, filename, sheetname):
     81         filename, sheetname = self.decode(filename, sheetname)
     82         rbook = xlrd.open_workbook(filename)
     83         sheet = rbook.sheet_by_name(sheetname)
     84         rows = sheet.nrows
     85         cols = sheet.ncols
     86         all_content = []
     87         for i in range(rows):
     88             row_content = []
     89             for j in range(cols):
     90                 ctype = sheet.cell(i, j).ctype  # 表格的数据类型
     91                 cell = sheet.cell_value(i, j)
     92                 if ctype == 2 and cell % 1 == 0:  # 如果是整形
     93                     cell = int(cell)
     94                 elif ctype == 3:
     95                     # 转成datetime对象
     96                     date = datetime(*xldate_as_tuple(cell, 0))
     97                     cell = date.strftime('%Y/%d/%m %H:%M:%S')
     98                 elif ctype == 4:
     99                     cell = True if cell == 1 else False
    100                 row_content.append(cell)
    101             all_content.append(row_content)
    102             print '[' + ','.join("'" + str(element) + "'" for element in row_content) + ']'
    103         return all_content
    104 
    105 
    106 def openfile():#打开一个文件写入数据,不改变之前文档的格式
    107     old_book=xlrd.open_workbook(path,formatting_info=True)
    108     new_book=copy(old_book)
    109     newWs = new_book.get_sheet(0)
    110     style1 = xlwt.XFStyle()
    111     style1.num_format_str = 'yyyy/m/d'
    112 
    113     newWs.write(4, 1, account_date, style1)
    114     # 写入第2列的内容
    115     print "^^^^^^^^^^^"
    116     print account_date
    117     new_book.save(path01)
    118     print "复制并创建工作表格成功!"
    119     print ""
    120 if __name__ == '__main__':
    121     write_excel()
    122     # openfile()
    123     eh = excelHandle()
    124     filename = path
    125     sheetname = '工作簿01'
    126     eh.read_excel(filename, sheetname)
    作者:gtea 博客地址:https://www.cnblogs.com/gtea
  • 相关阅读:
    nginx防止盗链
    Nginx防盗链详细设置
    [bzoj2127]happiness
    [bzoj2400]Optimal Marks
    [bzoj1738]发抖的牛
    [bzoj1741]穿越小行星群
    [bzoj3123]森林
    [bzoj2588]Count on a tree
    [bzoj3144]切糕
    [bzoj1787]紧急集合
  • 原文地址:https://www.cnblogs.com/gtea/p/12742322.html
Copyright © 2011-2022 走看看