python操作excel工作表

"""python操作excel 写入ecxel"""
## ## ## ## ## ## ## ## ## ## ## ##
# -*- coding:utf-8 -*-
import xlrd
file_path = r'C:\Users\poseidon\Desktop\点名册.xls'


def excel_test():


    path = unicode(file_path, 'utf-8')
    """unicode(path, 'utf-8')
    正确读取中文字符的路径。"""
    wk = xlrd.open_workbook(path)


    # 打印所有的sheet名字,依次输出sheet名字
    print wk.sheet_names()
    for i in range(len(wk.sheet_names())):
        print wk.sheet_names()[i]


    """根据sheet索引或者名字选取sheet
    sheet_class9  # 9班
    sheet_rebuild  # 重修班


    sheet的名字和行列数
    sheet_class9.name  # 名字
    sheet_class9.nrows  # 行数
    sheet_class9.ncols  # 列数
    """
    sheet_class9 = wk.sheet_by_index(1)  # sheet索引从0开始
    # sheet_rebuild = wk.sheet_by_name(u'重修')
    print sheet_class9.name, sheet_class9.nrows, sheet_class9.ncols


    """获取整行整列数据,返回一个列表。
    sheet.row_values(index)
    sheet.col_values(index)
    """
    rows = sheet_class9.row_values(1)  # 获取第2行内容
    cols = sheet_class9.col_values(0)  # 获取第1列内容
    for i in range(len(rows)):
        print rows[i],
    print ''
    for i in range(len(cols)):
        print cols[i],
    print ''


    """获取单元格内容
    row 行
    col 列
    sheet.cell(row, col).calue
    sheet.cell_value(row, col)
    cell(row, col) == row(row)[col] == col(col)[row]
    """
    print sheet_class9.cell(1, 0).value
    print sheet_class9.cell_value(1, 0)
    print sheet_class9.row(1)[0].value
    """
    通过判断ctype的值,如果有单元格内内容出现错误,可以判断这种单元格的ctype进行修正。
    """
    print sheet_class9.cell(1, 0).ctype, sheet_class9.cell(1, 0)
    # >>>1 text:u'\u5b66\u53f7'
    print sheet_class9.cell(5, 5).ctype, sheet_class9.cell(5, 5)
    # >>>0 empty:u''




if __name__ == '__main__':
    excel_test()




## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
"""合并单元格的检索"""


# -*- coding:utf-8 -*-
import xlrd
file_path = r'C:\Users\poseidon\Desktop\点名册.xls'
def excel_test():
    path = unicode(file_path, 'utf-8')
    wk = xlrd.open_workbook(path, formatting_info=True)
    sheet_class9 = wk.sheet_by_name(u'9班')
    print sheet_class9.merged_cells
    """获取合并的单元格
    open_workbook读取文件时,将formatting_info设置为True,默认为False


    >>>[(0, 1, 0, 26)]
    merged_cells返回sheet中所有被合并的单元格。
    merged_cells返回的四个参数的含义是 - (row, row_range, col, col_range)
    对于选取区域[row, row_range) - 包括row,不包括row_range。
    [(0, 1, 0, 26)] - [0, 1)代表第1行,[0, 26)代表第1列到第25列。
    代表第1行的第1-25列是一个合并的单元格。
    其中(row, col)为合并单元格左上角坐标,(row_range, col_range)为单元格右下角坐标
    """
    print sheet_class9.cell_value(0, 0)
    """
    通过检索row和col低位索引,打印合并单元格内内容
    (0, 0)为合并后单元格左上角单元格坐标
    """


if __name__ == '__main__':
    excel_test()




## ## ## ## ##
使用python写入Excel工作表
## ## ## ## ##
# -*- coding:utf-8 -*-
import xlwt
# import xlrd




def excel_write():
    # 写入Excel
    f = xlwt.Workbook()  # 创建工作表


    # 创建第一个sheet
    sheet_1 = f.add_sheet(u'sheet_1', cell_overwrite_ok=True)
    row0 = [u'num', u'class', u'name']
    column0 = [u'class7', u'class8', u'class9']


    """写入一个单元格
    sheet.write(row, col, value, style)
    工作表.write(行, 列, 写入的值, 格式)
    """


    # 生成第一行
    for i in xrange(len(row0)):
        sheet_1.write(0, i+1, row0[i])


    # 生成第一列
    for i in xrange(len(column0)):
        sheet_1.write(i+1, 0, column0[i])


    f.save('demo.xls')  # 保存文件




if __name__ == '__main__':
    excel_write()




## ## ##
合并单元格操作方法




"""
sheet.write_merge(x, x+m, y, w+n, string, sytle)
x表示行,y表示列,m表示跨行个数,n表示跨列个数,
string表示要写入的单元格内容,style表示单元格样式。
"""

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值