• python读取excel,数字都是浮点型,日期格式是数字的解决办法


    #!/usr/bin/env python
    # -*- encoding: utf-8 -*-
    import xlrd
    import sys
    reload(sys)
    sys.setdefaultencoding('utf-8')
    import traceback
    from datetime import datetime
    from xlrd import xldate_as_tuple
    from collections import OrderedDict
    
    
    class excelHandle:
        def decode(self, filename, sheetname):
            try:
                filename = filename.decode('utf-8')
                sheetname = sheetname.decode('utf-8')
            except Exception:
                print traceback.print_exc()
            return filename, sheetname
    
        def read_excel(self, filename, sheetname):
            filename, sheetname = self.decode(filename, sheetname)
            rbook = xlrd.open_workbook(filename)
            sheet = rbook.sheet_by_name(sheetname)
            rows = sheet.nrows
            cols = sheet.ncols
            all_content = []
            for i in range(rows):
                row_content = []
                for j in range(cols):
                    ctype = sheet.cell(i, j).ctype  # 表格的数据类型
                    cell = sheet.cell_value(i, j)
                    if ctype == 2 and cell % 1 == 0:  # 如果是整形
                        cell = int(cell)
    
                    if ctype == 2 and cell % 1 != 0:  # 如果是浮点型
                        cell = round(cell,1)
    
                    elif ctype == 3:
                        # 转成datetime对象
                        date = datetime(*xldate_as_tuple(cell, 0))
                        # cell = date.strftime('%Y/%d/%m %H:%M:%S')
                        cell = date.strftime('%Y/%d/%m')
                    elif ctype == 4:
                        cell = True if cell == 1 else False
                    row_content.append(cell)
                all_content.append(row_content)
                #print '[' + ','.join("'" + str(element) + "'" for element in row_content) + ']'
            return all_content
    
    
    if __name__ == '__main__':
        eh = excelHandle()
        filename = '单包收入明细_new.xlsx'
        sheetname = '工作表1'
    
    
        all_list_data = eh.read_excel(filename, sheetname)
  • 相关阅读:
    swagger在线文档配置
    SpringBoot中使用Shiro和JWT做认证和鉴权
    Java web基础
    spring boot基础
    spring MVC基础
    IDEA破解(自动重置试用期)
    Linux常用jar包启动停止脚本sh命令
    Docker Desktop 容器与镜像的保存和导入
    字符串有长度限制吗
    Thyemleaf报错: Method call: Attempted to call method *** on null context object
  • 原文地址:https://www.cnblogs.com/zhaoyingjie/p/8651800.html
Copyright © 2020-2023  润新知