快捷搜索:  汽车  科技

python excel处理教程(教你如何用python轻轻松松操作Excel)

python excel处理教程(教你如何用python轻轻松松操作Excel)# 导入 xlwt 库import xlwt# 设置写出格式字体红色加粗styleBR = xlwt.easyxf('font: name Times New Roman color-index red bold on')# 设置数字型格式为小数点后保留两位styleNum = xlwt.easyxf(num_format_str='# ##0.00')# 设置日期型格式显示为YYYY-MM-DDstyleDate = xlwt.easyxf(num_format_str='YYYY-MM-DD')# 创建 xls 文件对象wb = xlwt.Workbook# 新增两个表单页sh1 = wb.add_sheet('成绩')sh2 = wb.add_sheet('汇总')# 然后按照位置来添加数据 第一个参数是行,第二个参数是列sh1.write(0 0 '姓名' styleBR

python excel处理教程(教你如何用python轻轻松松操作Excel)(1)

以上就是写入 Excel 的代码,是不是很简单,下面我们再来看下读取 Excel 该如何操作。

读取 Excel

读取 Excel 其实也不难,请看如下代码:

# 导入 xlrd 库
import xlrd

# 打开刚才我们写入的 test_w.xls 文件
wb = xlrd.open_workbook("test_w.xls")

# 获取并打印 sheet 数量
print( "sheet 数量:" wb.nsheets)

# 获取并打印 sheet 名称
print( "sheet 名称:" wb.sheet_names)

# 根据 sheet 索引获取内容
sh1 = wb.sheet_by_index(0)
# 或者
# 也可根据 sheet 名称获取内容
# sh = wb.sheet_by_name('成绩')

# 获取并打印该 sheet 行数和列数
print( u"sheet %s 共 %d 行 %d 列" % (sh1.name sh1.nrows sh1.ncols))

# 获取并打印某个单元格的值
print( "第一行第二列的值为:" sh1.cell_value(0 1))

# 获取整行或整列的值
rows = sh1.row_values(0) # 获取第一行内容
cols = sh1.col_values(1) # 获取第二列内容

# 打印获取的行列值
print( "第一行的值为:" rows)
print( "第二列的值为:" cols)

# 获取单元格内容的数据类型
print( "第二行第一列的值类型为:" sh1.cell(1 0).ctype)

# 遍历所有表单内容
for sh in wb.sheets:
for r in range(sh.nrows):
# 输出指定行
print( sh.row(r))

输出如下结果:

python excel处理教程(教你如何用python轻轻松松操作Excel)(2)

细心的朋友可能注意到,这里我们可以获取到单元格的类型,上面我们读取类型时获取的是数字1,那1表示什么类型,又都有什么类型呢?别急下面我们通过一个表格展示下:

数值类型说明
0empty
1string字符串
2number数字
3date日期
4boolean布尔值
5error错误

通过上面表格,我们可以知道刚获取单元格类型返回的数字1对应的就是字符串类型。

修改 excel

上面说了写入和读取 Excel 内容,接下来我们就说下更新修改 Excel 该如何操作,修改时就需要用到 xlutils 中的方法了。直接上代码,来看下最简单的修改操作:

# 导入相应模块
import xlrd
from xlutils.copy import copy

# 打开 excel 文件
readbook = xlrd.open_workbook("test_w.xls")

# 复制一份
wb = copy(readbook)

# 选取第一个表单
sh1 = wb.get_sheet(0)

# 在第五行新增写入数据
sh1.write(4 0 '王欢')
sh1.write(4 1 '通信工程')
sh1.write(4 2 '机器学习')
sh1.write(4 3 89)

# 选取第二个表单
sh1 = wb.get_sheet(1)

# 替换总成绩数据
sh1.write(1 0 362)

# 保存
wb.save('test.xls')

从上面代码可以看出,这里的修改 Excel 是通过 xlutils 库的 copy 方法将原来的 Excel 整个复制一份,然后再做修改操作,最后再保存。看下修改结果如下:

python excel处理教程(教你如何用python轻轻松松操作Excel)(3)

python excel处理教程(教你如何用python轻轻松松操作Excel)(4)

格式转换操作

在平时我们使用 Excel 时会对数据进行一下格式化,或者样式设置,在这里把上面介绍写入的代码简单修改下,使输出的格式稍微改变一下,代码如下:

# 导入 xlwt 库
import xlwt

# 设置写出格式字体红色加粗
styleBR = xlwt.easyxf('font: name Times New Roman color-index red bold on')

# 设置数字型格式为小数点后保留两位
styleNum = xlwt.easyxf(num_format_str='# ##0.00')

# 设置日期型格式显示为YYYY-MM-DD
styleDate = xlwt.easyxf(num_format_str='YYYY-MM-DD')

# 创建 xls 文件对象
wb = xlwt.Workbook

# 新增两个表单页
sh1 = wb.add_sheet('成绩')
sh2 = wb.add_sheet('汇总')

# 然后按照位置来添加数据 第一个参数是行,第二个参数是列
sh1.write(0 0 '姓名' styleBR) # 设置表头字体为红色加粗
sh1.write(0 1 '日期' styleBR) # 设置表头字体为红色加粗
sh1.write(0 2 '成绩' styleBR) # 设置表头字体为红色加粗

# 插入数据
sh1.write(1 0 '张三' )
sh1.write(1 1 '2020-07-01' styleDate)
sh1.write(1 2 90 styleNum)
sh1.write(2 0 '李四')
sh1.write(2 1 '2020-08-02')
sh1.write(2 2 95 styleNum)

# 设置单元格内容居中的格式
alignment = xlwt.Alignment
alignment.horz = xlwt.Alignment.HORZ_CENTER
style = xlwt.XFStyle
style.alignment = alignment

# 合并A4 B4单元格,并将内容设置为居中
sh1.write_merge(3 3 0 1 '总分' style)

# 通过公式,计算C2 C3单元格的和
sh1.write(3 2 xlwt.Formula("C2 C3"))

# 对 sheet2 写入数据
sh2.write(0 0 '总分' styleBR)
sh2.write(1 0 185)

# 最后保存文件即可
wb.save('test.xls')

输出结果:

python excel处理教程(教你如何用python轻轻松松操作Excel)(5)

猜您喜欢: