如何使用python快速处理表格_刷到利用:Python快速处理表格的AD

Python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel

Part 1xlrd

匆匆之中,准备如下,简单一表,测试功能:

直接脚本,文件如下:

① 导入模块:xlrd。

cmd命令下:pip install xlrd就OK了。

② 加载表格

import xlrd,os

# 加载xls格式的Excel文件对象,原理都是在xlrd中创建Book对象

work_book = xlrd.open_workbook('frozen.xls')

# work_book = xlrd.book.open_workbook_xls('frozen.xls')

③ 获取sheet,页签数量

# 1、sheet页签

# sheet页签数量

print(work_book.nsheets)

# 获取工作簿中所有sheet表对象

sheets = work_book.sheets()

print(sheets)

# 获取工作簿所有sheet表对象名称

sheets_name = work_book.sheet_names()

print(sheets_name)

os.system("pause");

④获取sheet

# 2、获取sheet对象

# 按照索引

sheet_1 = work_book.sheet_by_index(0)

print(sheet_1)

# 按sheet表名,名称分大小写

sheet_2 = work_book.sheet_by_name('Frozen')

print(sheet_2)

⑤获取单元格

# 单元格数据类型:单元格值

cell_0 = sheet_1.cell(0,0)

print(cell_0)

# 单纯单元格值

cell_0_value = sheet_1.cell_value(0,0)

print(cell_0_value)

# 单纯单元格类型

cell_0_type = sheet_1.cell_type(0,0)

print(cell_0_type)

os.system("pause");

⑥ 获取一行,表格属性

# 当前sheet,总行数

row_sum = sheet_1.nrows

print(row_sum)

# 获取sheet表某一行长度

row_len = sheet_1.row_len(0)

print(row_len)

# 获取sheet表某一行所有数据类型及值

row_0 = sheet_1.row(0)

print(row_0)

os.system("pause");

⑦ 获取某一行

# 对象数据类型、值,可指定开始结束列

row_0_s = sheet_1.row_slice(0,0,3)

print(row_0_s)

# 获取sheet表对象某一行数据类型,返回一个数组对象

row_0_type = sheet_1.row_types(0)

print(row_0_type)

# 获取sheet表对象某一行数据值

row_0_value = sheet_1.row_values(0)

print(row_0_value)

row_1_value = sheet_1.row_values(1)

print(row_1_value)

row_2_value = sheet_1.row_values(2)

print(row_2_value)

row_3_value = sheet_1.row_values(3)

print(row_3_value)

os.system("pause");

⑧获取列对象

# 获取列对象

rows = sheet_1.get_rows()

print(rows)

for row in rows:

print(row)

# 获取sheet表有效列数

col_sum = sheet_1.ncols

print(col_sum)

# 获取某一列的值

col_0_value = sheet_1.col_values(0)

print(col_0_value)

# 获取某一列的数据类型

col_0_type = sheet_1.col_types(0)

print(col_0_type)

os.system("pause");

一个完整的demo

import xlrd,os

# 加载xls格式的Excel文件对象,原理都是在xlrd中创建Book对象

work_book = xlrd.open_workbook('frozen.xls')

# work_book = xlrd.book.open_workbook_xls('frozen.xls')

# 1、sheet页签

# sheet页签数量

print(work_book.nsheets)

# 获取工作簿中所有sheet表对象

sheets = work_book.sheets()

print(sheets)

# 获取工作簿所有sheet表对象名称

sheets_name = work_book.sheet_names()

print(sheets_name)

os.system("pause");

# 2、获取sheet对象

# 按照索引

sheet_1 = work_book.sheet_by_index(0)

print(sheet_1)

# 按sheet表名,名称分大小写

sheet_2 = work_book.sheet_by_name('Frozen')

print(sheet_2)

os.system("pause");

# 3、获取单元格对象

# 单元格数据类型:单元格值

cell_0 = sheet_1.cell(0,0)

print(cell_0)

# 单纯单元格值

cell_0_value = sheet_1.cell_value(0,0)

print(cell_0_value)

# 单纯单元格类型

cell_0_type = sheet_1.cell_type(0,0)

print(cell_0_type)

os.system("pause");

# 4、获取sheet表对象有效行数

row_sum = sheet_1.nrows

print(row_sum)

# 获取sheet表某一行长度

row_len = sheet_1.row_len(0)

print(row_len)

# 获取sheet表某一行所有数据类型及值

row_0 = sheet_1.row(0)

print(row_0)

os.system("pause");

# 5、获取某一行

# 对象数据类型、值,可指定开始结束列

row_0_s = sheet_1.row_slice(0,0,3)

print(row_0_s)

# 获取sheet表对象某一行数据类型,返回一个数组对象

row_0_type = sheet_1.row_types(0)

print(row_0_type)

# 获取sheet表对象某一行数据值

row_0_value = sheet_1.row_values(0)

print(row_0_value)

row_1_value = sheet_1.row_values(1)

print(row_1_value)

row_2_value = sheet_1.row_values(2)

print(row_2_value)

row_3_value = sheet_1.row_values(3)

print(row_3_value)

os.system("pause");

# 6、获得列对象

rows = sheet_1.get_rows()

print(rows)

for row in rows:

print(row)

# 获取sheet表有效列数

col_sum = sheet_1.ncols

print(col_sum)

# 获取某一列的值

col_0_value = sheet_1.col_values(0)

print(col_0_value)

# 获取某一列的数据类型

col_0_type = sheet_1.col_types(0)

print(col_0_type)

os.system("pause");

Part 2 xlwt

安装xlwt:cmd命令下输入:pip3 install xlwt

小demo

# -*- coding:cp936 -*-

import xlwt,os

from datetime import datetime

style0 = xlwt.easyxf('font: name Times New Roman, color-index red, bold on',

num_format_str='#,##0.00')

style1 = xlwt.easyxf(num_format_str='YYYY-MM-DD')

wb = xlwt.Workbook(encoding = 'utf-8')

ws = wb.add_sheet('A Test Sheet')

str1 = "爱到尽头,覆水难收。爱悠悠恨悠悠!"

ws.write(0, 0, 1234.56, style0)

ws.write(1, 0, datetime.now(), style1)

ws.write(2, 0, 1)

ws.write(2, 1, 1)

ws.write(2, 2, xlwt.Formula("A3+B3"))

ws.write(3, 0, str1)

os.system("pause");

wb.save('redant.xls')

【注意】

在Windows下编码cp936是可以写入成功的,但是在Linux中只能够用utf-8。

为什么使用:编码cp936呢?笔者刚刚接触,还未可知。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值