关于xlrd/xlwt和openpyxl的差别

两者都是对于excel文件的操作插件,两者的主要区别在于写入操作,其中xlwt针对Ecxec2007之前的版本,即.xls文件,其要求单个sheet不超过65535行,而openpyxl则主要针对Excel2007之后的版本(.xlsx),它对文件大小没有限制。另外还有区别就是二者在读写速度上的差异,xlrd/xlwt在读写方面的速度都要优于openpyxl,但因为xlwt无法生成xlsx是个硬伤,所以想要尽量提高效率又不影响结果时,可以考虑用xlrd读取,用openpyxl写入。

xlrd读excel文件
wb=xlrd.open_workbook("C:/Users/18408/Desktop/jmeter脚本/达梦压测/dwzh.xlsx")
table = wb.sheets()[0] # 根据索引获取工作表
table = wb.sheet_by_index(0) # 根据索引获取工作表
table = wb.sheet_by_name(r"三国演义") # 根据名程获取工作表
names = wb.sheet_names() # 获取所有工作表的名字
total_rows = table.nrows # 获取总行数
total_cols = table.ncols # 获取总列数
current_row_values = table.row_values(4, startcolx=3, endcolx=4) # 获取该行的列控制[切片]单元格的数据组成的列表
current_col_values = table.col_values(2, startrowx=0, endrowx=1)# 该列的行控制[切片]单元格的数据组成的列表
cell_value = table.cell_value(3, 3) # 获取指定单元格数据

table = wb.sheet_by_name('Sheet1')
dwzh_list=[table.cell_value(j,0) for j in range(table.nrows)]  #只有第一列有数据,获取所有第一列数据存入列表
openpyxl写入excel文件
import openpyxl
wb = openpyxl.Workbook()   #新建工作簿

workbook_path = "./data.xlsx"
wb = openpyxl.load_workbook(workbook_path) #打开原有工作簿

ws = wb.active # 打开当前工作表,即打开Excel文件时显示的那个工作表
ws.title = "new_name"  #修改工作表名

ws = wb.create_sheet("new_sheet_name") #新建工作表
wb.remove("sheet_name") #删除工作表
wb.copy_worksheet(from_worksheet)#复制工作表,只能同一个Excel文件下

max_row = ws.max_row # 获取行数,即有数据的所有行中最大的那一行
max_col = ws.max_column # 获取列数,即有数据的所有列中最大的那一列
min_row = ws.min_row
min_col = ws.min_col

ws.cell_value(row,col) #获取某个单元格数据
ws.cell(row, col, data) #将数据写入某个单元格

#合并和拆分单元格:
ws.merge_cells("A1:B2")
ws.unmerge_cells("A1:B2")

#行列隐藏,True为隐藏
sheet.row_dimensions[2].hidden = True/False
sheet.column_dimensions['a'].hidden = Ture

#冻结窗格:
ws.freeze_panes = "A2" # 冻结第一行

wb.save(workbook_path) # 注意,会覆盖原有文件
ws = wb["Sheet_name"] # 或wb.get_sheet_by_name("Sheet_name")  #打开指定工作表
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容