python操作excel

python对excel表格操作一般常用的两个库:xlrd 和xlwt;

但是xlwt具有局限性,它不能写入超过65535行,256列的数据,因此当有大量数据需要写入的时候,可以使用另一个openpyxl;

xlrd

xlrd一般是python从excel中读取数据,进行读操作的;

#打开excel文件
data = xlrd.open_workbook("go-jek.xls")
# 获取工作簿中所有表名 tables = data.sheet_names()
# 通过表名选择工作表 table_1 = data.sheet_by_name("Sheet 1")
# 通过下标选择工作表 table_2 = data.sheet_by_index(0)
# 获取第一张工作表,通过下标索引 table = data.sheets()[0]
# 获取表格的行数和列数 nrows = table.nrows ncols = table.ncols print(nrows, ncols)
# 获取整行和整列的值 table.row_values(0) table.column_values(0)
# 打印第一行数据 print(table.row_values(0)) # ['name']
# 打印第一列数据 print(table.col_values(0))
# 读取某个单元格数据 //table.cell(row, col) print(table.cell(1,0))

xlwt

xlwt 是python用来进行写操作的;

# 新建一个Excel文件(只能通过新建写入)
workbook = xlwt.Workbook(encoding="utf8")

# 新建工作表 cell_overwrite_ok为True表示允许重复写入覆盖
table = workbook.add_sheet("name", cell_overwrite_ok=True)

# 写入数据
# table.write(row, col, data)
table.write(0, 0, "leslie")

# 保存文件
workbook.save("filename.xls")

# xlwt支持一些其他格式
# 初始化样式
style = xlwt.XFStyle()

# 创建字体
font = xlwt.Font()

# 指定字体名字
font.name = "Microsoft YaHei UI"

# 字体加粗
font.bold = True

# 将该字体加入到样式中
style.font = font

# 写文件时加入该样式
table.write(0, 0, "jason", style)

openpyxl

该模块支持新的excel版本,对excel文件可以进行读写操作;其常用操作:

# 读取Excel文件
from openpyxl.reader.excel import load_workbook
wb=load_workbook(filename)

# 显示工作表的索引范围
wb.get_named_ranges()

# 显示所有工作表的名字
wb.get_sheet_names()

# 取得第一张表
sheetnames = wb.get_sheet_names()  
ws = wb.get_sheet_by_name(sheetnames[0])

# 获取表名
ws.title

# 获取表的行数
ws.get_highest_row()

# 获取表的列数
ws.get_highest_column()

# 单元格的读取,此处和xlrd的读取方式很相近,都是通过行和列的索引来读取
#读取B1单元格中的内容
ws.cell(0,1).value

# 当然也支持通过Excel坐标来读取数据
ws.cell("B1").value

写操作只有一种方式,就是通过坐标进行写入;

from openpyxl.workbook import Workbook 
 
#ExcelWriter,里面封装好了对Excel的写操作
from openpyxl.writer.excel import ExcelWriter  

#get_column_letter函数将数字转换为相应的字母,如1-->A,2-->B  
from openpyxl.cell import get_column_letter  

#新建一个workbook  
wb = Workbook()  

#新建一个excelWriter  
ew = ExcelWriter(workbook = wb)  

#设置文件输出路径与名称  
dest_filename = r'empty_book.xlsx'  

#第一个sheet是ws  
ws = wb.worksheets[0]  

#设置ws的名称  
ws.title = "range names"

#向某个单元格中写入数据
ws.cell("C1").value=u'哈哈'

#最后保存文件
ew.save(filename=dest_filename)

 

posted on 2018-09-05 17:04  逆行人  阅读(207)  评论(0编辑  收藏  举报

导航