zoukankan      html  css  js  c++  java
  • 18-09-20 关于Xlrd和Xlwt的初步学习

    #一关于利用xlrd  打开Excel 读取数据的简单介绍

    import xlrd

    """
    #1 xlrd 基础的用法:读取,获取sheet,获取内容,行数,列数

    def read_excel():
        #11打开文件      
        workbook = xlrd.open_workbook(r'C:UsersWYDesktop11111111111.xlsx')
        # 22sheet是个列表 获取所有sheet['Sheet1', 'Sheet2']
       print(workbook.sheet_names())
        # 33根据sheet索引或者名字获取sheet工作表名字
        方式一索引

    sheet2_name= workbook.sheet_names()[1]
        sheet2_name= workbook.sheet_by_index(1) #如果没有索引就会报错
        方式二 名字

    sheet2 = workbook.sheet_by_name('Sheet2') #根据sheet的名字取相应的内容

        #44 获取行 或者列 的数量 例如3行 5列

    print(sheet2.name,sheet2.nrows,sheet2.ncols)

        #55 获取第几行的内容 或者第几列的内容

    rows = sheet2.row_values(3) # 55 获取第四行内容
    cols = sheet2.col_values(0) # 66 获取第一列内容
    print(rows)
    print(cols)

    #66 获取所有的的行
        nrows = sheet2.nrows
        list_data = []
    #循环nrows 打印的行数
       for i in range (nrows):
        #每一行的数据
    line_data =
    sheet2.row_values(i)
           #每一列的数据
    #myColValues = sheet2.col_values(i)
    list_data.append(line_data)
    print("打印总数据列表",list_data)
        
        

    #2 xlrd 获取单元格内容的三种方法 text 普通 和 行列索引
    #print(sheet2.cell(5,0).value) #网吧这小个害人的东西
    print(sheet2.cell(1,0).value.encode('utf-8'))
    print(sheet2.cell_value(3,0).encode('utf-8')) # b'xe7xbdx91xe5x90xa7xe8xbfx99xe5x
    print(sheet2.row(1)[0].value.encode('utf-8'))

    #3 xlrd 关于取出数据的格式问题
    # 说明:ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
    print(sheet2.cell(1,0).ctype) #第2行第1列:xiaoming2 为string类型
    print(sheet2.cell(2,0).ctype) #第3行第1列:12 为number类型
    print(sheet2.cell(3,0).ctype) #第4行第1列:2015/5/5 为date类型
    read_excel()
    """














    
    

    # 二 xlwt 对Excel 的写操作

    # 2-1创建一个表格(自定义sheet的个数和名字,和添加内容到指定的单元格中)
    import xlwt
    from xlwt import Workbook
    """
    def create(name):
    book = Workbook(encoding='utf-8')
    sheet1 = book.add_sheet('我的sheet1') #增加第一个sheet并命名
    sheet2 = book.add_sheet('我的sheet2')
    sheet1.write(0,0,"我是第一行第一列") #以下是写入内容根据(行数,列数,“内容”)
    sheet1.write(0,1,"我是第一行第二列")
    sheet1.write(1,0,"我是第2行第一列")
    sheet1.write(1,1,"我是第2行第二列")
    sheet2.write(0, 0, "我是第一行第一列")
    sheet2.write(0, 1, "我是第一行第二列")
    sheet2.write(1, 0, "我是第2行第一列")
    sheet2.write(1, 1, "我是第2行第二列")

    #2-2 文件的保存 并根据传参命名(两种方式)
    # 保存Excel book.save('path/文件名称.xls')
    # book.save('E:/fund_data/Excel_datas/测试2018-09-06/ww.xls')
    # book.save('C:/Users/WY/Desktop/%s.xls'% name)#替换表的名字 %s 方法
    book.save('C:/Users/WY/Desktop/{}.xls'.format(name) )#替换表的名字format方法
    create("创建Excel文本222")
    """

    #2-3 新建一个具体的excel 设置好字体 字号等
    import os
    import xlwt

    def set_style(name, height, bold=False):
    style = xlwt.XFStyle() # 初始化样式

    font = xlwt.Font() # 为样式创建字体
    font.name = name
    font.bold = bold #黑体
    font.color_index = 4
    font.height = height #

    style.font = font
    return style

    #2-4实例化创建一个表格
    def write_excel():
    # 创建工作簿
    workbook = xlwt.Workbook(encoding='utf-8')
    # 创建sheet
    data_sheet = workbook.add_sheet('sheet1')
    row0 = ['序号', '姓名', '性别', '年龄']
    row1 = [1, '王牧天1', '男', 4.5]

    # 生成第一行和第二行
    # print("data_list",data_list)
    for i in range(len(row0)):
    data_sheet.write(0, i, row0[i], set_style('Times New Roman', 220, True)) #调用以上函数 罗马字体
    data_sheet.write(1, i, row1[i], set_style('Times New Roman', 220, True)) #调用以上函数 罗马字体
    # 保存文件
    workbook.save('C:/Users/WY/Desktop/测试王牧天格式.xls')

    if __name__ == '__main__':
    write_excel()
    print('创建demo.xlsx文件成功')
  • 相关阅读:
    11G-使用跨平台增量备份减少可移动表空间的停机时间 XTTS (Doc ID 1389592.1)
    如何在asm上定位数据块
    log file switch (checkpoint incomplete)
    踩坑记录(git)-误提交target文件夹删除办法
    踩坑记录(java)-双层增强for调用remove(obj)报错 java.util.ConcurrentModificationException(并发修改异常)
    Zookeeper服务端的创建及简单的客户端创建节点
    SpringAOP(注解方式实现面向切面编程)之常用Before、After、Around
    EasyExcel示例(阿里巴巴)基于Maven
    Redis简单命令(部分示例代码)
    sqlserver日志处理不当而造成的隐患
  • 原文地址:https://www.cnblogs.com/xiaoluoboer/p/9681327.html
Copyright © 2011-2022 走看看