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
  • 相关阅读:
    手把手教你利用create-nuxt-app脚手架创建NuxtJS应用
    初识NuxtJS
    webpack打包Vue应用程序流程
    用选择器代替表格列的筛选功能
    Element-UI
    Spectral Bounds for Sparse PCA: Exact and Greedy Algorithms[贪婪算法选特征]
    Sparse Principal Component Analysis via Rotation and Truncation
    Generalized Power Method for Sparse Principal Component Analysis
    Sparse Principal Component Analysis via Regularized Low Rank Matrix Approximation(Adjusted Variance)
    Truncated Power Method for Sparse Eigenvalue Problems
  • 原文地址:https://www.cnblogs.com/gtea/p/12742322.html
Copyright © 2011-2022 走看看