"""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表示单元格样式。
"""
python操作excel工作表
最新推荐文章于 2024-08-28 16:21:08 发布