python中的xlwt和xlrt的基础操作

import xlrd
import xlrd

# 打开Excel文件读取数据
data = xlrd.open_workbook('lxr.xls')

sheet_name = data.sheet_names()  # 获取所有sheet名称
print(sheet_name)  # ['银行2', '银行3']
table = data.sheets()[0]          #通过索引顺序获取
table1 = data.sheet_by_index(0) #通过索引顺序获取
print(table1)
table2 = data.sheet_by_name(u'Sheet3')#通过名称获取
print(table2)
#
# # 获取整行和整列的值(数组)  
print(table.row_values(1),table.col_values(2))

print( table.nrows,table.ncols)# 获取行数和列数

# 循环行列表数据
for i in range(table.nrows):
    print(table.row_values(i))
#
# #循环列的列表数据
# for j in range(table.nocols):
#     print(table.col_values(i))
# #不能按列遍历
#
cell_A1 = table.cell(0,0).value
cell_C4 = table.cell(1,2).value
print(cell_C4,cell_A1)
# #获取指定的表格内容
#
# #使用行列索引
cell_A3 = table.row(0)[0].value
cell_A2 = table.col(1)[0].value
print(cell_A2,cell_A3)
row = 0
col = 0

# 类型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
ctype = 1
value = '3'
xf = 0 # 扩展的格式化
table.cell(0,0)  #单元格的值'
table.cell(0,0).value #单元格的值'
table.put_cell(row, col, ctype, value, xf)

import xlrd


# 打开Excel文件
workbook = xlrd.open_workbook('lxr.xls')

# 输出Excel文件中所有sheet的名字
sheet_name = data.sheet_names()  # 获取所有sheet名称
print(sheet_name)
# 根据sheet索引或者名称获取sheet内容
Data_sheet = workbook.sheets()[0]
CdfData_sheet = workbook.sheet_by_index(1)
Charts_sheet = workbook.sheet_by_name(u'人民')

# 获取sheet名称、行数和列数


# 获取整行和整列的值(列表)
rows = Data_sheet.row_values(0)  # 获取第一行内容
cols = Data_sheet.col_values(1)  # 获取第二列内容
# print rows
# print cols

# 获取单元格内容
cell_A1 = Data_sheet.cell(0, 0).value
cell_C1 = Data_sheet.cell(0, 2).value
cell_B1 = Data_sheet.row(0)[1].value
cell_D2 = Data_sheet.col(1)[1].value

# 获取单元格内容的数据类型
# ctype:0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
print(Data_sheet.cell(0,0).ctype)
# print(
# 'cell(0,0)数据类型:'+Data_sheet.cell(0, 0).ctype
# ,
# 'cell(1,0)数据类型:'+ Data_sheet.cell(1, 0).ctype
# ,
# 'cell(1,1)数据类型:'+Data_sheet.cell(1, 1).ctype
# ,
# 'cell(1,2)数据类型:'+ Data_sheet.cell(1, 2).ctype)

# 获取单元格内容为日期的数据
# date_value = xlrd.xldate_as_tuple(Data_sheet.cell_value(3,1), workbook.datemode)
# print(date_value)
# print(workbook.datemode)
# '%d:%d:%d' % (date_value[3:]))

# d = {'11:25:59': [1, 2, 3], '11:26:00': [2, 3, 4], '11:26:01': [3, 4, 5]}

# print
# d['11:25:59']
# print
# d['11:26:00']
# print
# d['11:26:01']
#
# print
# d['11:25:59'][0]
# print
# d['11:26:00'][0]
# printd['11:26:01'][0]

# 注:excel单元格中时间类型有:日期和时间,使用xlrd读取时,均转换为 xldate类型
#
# 1. xlrd.xldate_as_tuple(xldate,datemode)
# 参数 xldate: 要处理的单元格值
#
# 参数 datemode:时间基准(0代表1900-01-01为基准,1代表1904-01-01为基准);常使用1900为基准
#
# 返回值:返回一个元组,类似于(year,month,day,hour,minute,nearest_second)
#
# 但是,仅适用于date类型的excel单元格,不适用于time类型的单元格
#
# 对于time类型的单元格值,报错:XLDateAmbiguous
#
# 2. xlrd.xldate.xldate_as_datetime(xldate,datemode)
# 参数 xldate: 要处理的单元格值
#
# 参数 datemode:时间基准(0代表1900-01-01为基准,1代表1904-01-01为基准);常使用1900为基准
#
# 返回值:datetime对象,格式 year-month-day hour:minute:second
#
# 但是,对于time类型的单元格值,转化后自动以基准补充;如基准选择1900时,时间 13:09:30
#
# 转化后为:1900-01-01 23:08:00
#
# 3. da=xlrd.xldate.xldate_as_datetime(xldate,datemode)
#
# da.strftime("%Y/%m/%d")#对应的显示日期可以按照下表格式

#xlwt
# csv             python标准模块。推荐。
# xlrd            读取 .xls, .xlsx 文件。
# xlutils       xlrd和xlwt的集合。
# openpyxl 读写 Excel 2007 xlsx/xlsm文件 。纯python,效率不高。
# Matplotlib      2D作图模块,适用于基于excel作图。
# Pywin32   python windows扩展 ,不跨平台,通过COM口连接excel。
# Pyxll           在excel中使用python替代vbs。类似模块有pyinex。
# XlsxWriter      写xlsx文件。纯python。
#建一个名为mini.xls的文件,它有一个空sheet:'xlwt was here'。
# from xlwt import *
# w =Workbook()
# ws = w.add_sheet('xlwtwas here')
# w.save('mini.xls')

#
# Workbook类初始化时有encoding和style_compression参数。
# #
# encoding,设置字符编码,一般要这样设置:w = Workbook(encoding='utf-8'),就可以在excel中输出中文了。默认是ascii。当然要记得在文件头部添加:

# -*- coding: utf-8-*-

# style_compression 表示是否压缩,不常用。
# Workbook 还有一些属性:
# Owner 设置文档所有者。
# country_code: 国家码
# wnd_protect: 窗口保护
# obj_protect: 对象保护
# Protect: 保护
# backup_on_save: 保存时备份
# Hpos: 横坐标
# Vpos: 纵坐标
# Width: 宽度
# Height: 高度
# active_sheet: 活动sheet
# tab_width: tab宽度
# wnd_visible: 窗口是否可见
# wnd_mini: 窗口最小化
# hscroll_visible: 横向滚动条是否可见。
# vscroll_visible: 纵向滚动条是否可见。
# tabs_visible: tab是否可见。
# dates_1904: 是否使用1904日期系统
# use_cell_values: 单元格的值
# default_style: 默认样式
# colour_RGB: 颜色
#
# 方法有:add_style,add_font,add_str,del_str,str_index,add_rt,rt_index,add_sheet,get_sheet,raise_bad_sheetname,convert_sheetindex,setup_xcall,add_sheet_reference。

# _*_ coding:utf-8 _*_

# ----------------------------------------------------------------------------
# import modules
# ----------------------------------------------------------------------------
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


def write_excel():
    # 创建工作簿
    workbook = xlwt.Workbook( encoding ='utf-8')
    # 创建sheet
    data_sheet = workbook.add_sheet('demo')
    row0 = [u'字段名称', u'大致时段', 'CRNTI', 'CELL-ID']
    row1 = [u'测试', '15:50:33-15:52:14', 22706, 4190202]

    # 生成第一行和第二行
    for i in range(len(row0)):
        data_sheet.write(0, i, row0[i], set_style('Times New Roman', 220, True))
        data_sheet.write(2, i, row1[i], set_style('Times New Roman', 220, True))

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


if __name__ == '__main__':
    write_excel()
    print(
    u'创建demo.xlsx文件成功')
    # font: 主要对字体进行操作,比如字体的颜色、大小
    # alignment:主要是对输入内容之后的对齐方式对齐
    # borders:每一个单元格的格式
    # pattern:设置单元格的背景颜色

    # font.bold = bold  # 粗体
    # font.italic = True  # 斜体
    # font.underline = 10  # 下划线(其中当值为9,整行的填充色为蓝色)
    # font.struck_out = True  # 横线(比如:在一个字中 画上一横)

    # 获取单元格内容为日期的数据

    # date_value = xlrd.xldate_as_tuple(Data_sheet.cell_value(1, 0), workbook.datemode)
    #
    # print(type(date_value), date_value)
    #
    # print('%d:%d:%d' % (date_value[0:3]))
#根据所给路径建立xls文件
# path = 'E:/demo.xls'
#
# write_excel(path)
# style = xlwt.XFStyle() # 初始化样式

# workbook.save(path)

#
# •新建一个excel文件: file = xlwt.Workbook() (注意这里的Workbook首字母是大写)
#
# •新建一个sheet: table = file.add_sheet('sheet_name')
#
# •写入数据table.write(行,列,value): table.write(0,0,'test')
#
# •如果是写入中文,则要用u'汉字'的形式。比如: table.write(0,0, u'汉字')
#
# •合并单元格: table.write_merge(x, x + m, y, y + n, string, style)
#
# •x表示行,y表示列,m表示跨行个数,n表示跨列个数,string表示要写入的单元格内容,style表示单元格样式

# 生成第一行

# for i in range(0, len(row0)):
#
# sheet1.write(0, i, row0[i], set_style('Times New Roman', 220, True))
#
# # 生成第一列和最后一列(合并4行)
#
# i, j = 1, 0
#
# while i < 4*len(column0) and j < len(column0):
#
# sheet1.write_merge(i, i+3, 0, 0, column0[j], set_style('Arial', 220, True)) # 第一列
#
# sheet1.write_merge(i, i+3, 7, 7) # 最后一列"合计"
#
# i += 4
#
# j += 1
#
# sheet1.write_merge(21,21,0,1,u'合计',set_style('Times New Roman',220,True))
#
# # 生成第二列
#
# i = 0
#
# while i < 4*len(column0):
#
# for j in range(0,len(status)):
#
# sheet1.write(j+i+1, 1, status[j])
#
# i += 4
#
# f.save(output_path)


























基本操作就是这些了,有兴趣的小伙伴们可以复制过来自已慢慢研究

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值