添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

xlwings 和 xlwt 的用法

1. xlwings用法
xlwings支持所有格式, 支持读写,还支持numpy, pandas, matplotlib等等 !

import xlwings as xw
def save_to_excel(items):  # items格式是 [{}, {}, {}]
	app = xw.App(visible=True, add_book=False)  # 实例化一个app<打开excel>,visible=True表示操作过程可见
	wb = app.books.add()  # 创建一个空白的的excel
	# wb = app.books.open("demo.xlsx")  这是打开已存在的demo文件
	sht = wb.sheets['Sheet1']  # 指定打开的excel的表名,也可以用0表示第一个标,并不是重命名!!!!
	#sht2 = wb.sheets.add('new1') # 这是新建一个叫new1的表
	# 插入一行
	val = sht.range('a1:d5')   # 选定单元格a1到a5
    val.row_height = 25   # 设置行高为25
    val.column_width = 30  # 设置列宽为30
    val.color = (255, 0, 0)  # 颜色为红色
	sht.range('a1').value = list(items[0].keys()) # 随意取出一个字典的键组成一个列表 

在这里插入图片描述
列表里的数据就会整齐的插入第一行,从A1开始。

	# 插入多行数据
	for i in range(0, list(items[0].keys())):
		# 需要循环的数据items[{}, {}, {}],把字典的值取出来组成列表
	   	value_list = list(items[i].values())  # ['西月城谭豆花(春熙路店)', '甜水面,冰醉豆花,馓子豆花', '豆花', '10902', '¥25', '4.56', '4.48', '4.46', '春熙路', '暑袜北二街56号1-6号']
	    # 下面这个是一个一个数据的插入,很笨,不过很直观
		# sht.range('A{}'.format(i+2)).value = value_list[0] 
		# sht.range('B{}'.format(i+2)).value = value_list[1]
		# sht.range('C{}'.format(i+2)).value = value_list[2]
		# sht.range('D{}'.format(i+2)).value = value_list[3]
		# sht.range('E{}'.format(i+2)).value = value_list[4]
		# sht.range('F{}'.format(i+2)).value = value_list[5]
		# sht.range('G{}'.format(i+2)).value = value_list[6]
		# sht.range('H{}'.format(i+2)).value = value_list[7]
		# sht.range('I{}'.format(i+2)).value = value_list[8]
		# sht.range('J{}'.format(i+2)).value = value_list[9]  
		sht.range(f'A{i+2}').value = value_list  # 从第二行开始插入,也就是从a2到j2
	 # 如果要插入多行数据的话,把value_list变成[[], [], [], []]这种类型,range('a2')这里面的a2是开始插入的位置。
		# 下面是插入一列的写法,就是从b3到b13
		sht.range('b3').options(transpose=True).value = value_list 
		df = pd.DataFrame([[1,2], [3, 4]])
		sht.range('a1').options(expand='table').value = df
	wb.save('demo.xlsx')  # 保存
save_to_excel()  # 执行

2. xlwt用法

xlwt不支持xlsx格式, 仅仅支持xls的写 !

import xlwt
def save_to_excel(item):  # 传入的item为字典格式!
	wb = xlwt.Workbook(encoding='utf-8')  # 创建一个工作表
	sheet = wb.add_sheet('liepin')     # 给表命名为liepin
	head = ['company', 'position', 'salary', 'info']   # 字段头单独放一个列表里
	for i in range(len(head)):
		#(0,0)代表A1, (0,1)代表B1, (0,2)代表C1, (0,3)代表D1
		sheet.write(0, i, head[i])   # 把头分别添加到表里索引为0,也就是第1行, 第i列.
	j = 1  # 从第二行开始
	for item in data:
		sheet.write(j, 0, item['position'])  # 从A2开始->A3
		sheet.write(j, 1, item['company'])   # 从B2开始->B3
		sheet.write(j, 2, item['salary'])	# 从C2开始->C3
		sheet.write(j, 3, item['info'])		# 从D2开始->D3
		j += 1
	wb.save('liepin.xls')
save_to_excel()

(0,0)代表第一行,第一列!
请添加图片描述

import xlwings as xwdef save_to_excel(items): # items格式是 [{}, {}, {}] app = xw.App(visible=True, add_book=False) # 实例化一个app,visible=True表示操作过程可见 wb = app.books.add() # 添加一个新的excel # wb = app.books.open("demo.xlsx") 这是打开已存在的demo文件 sht = wb.sheets[' #初始化写入表格程序 app=xw.App(visible=False,add_book=False) #visible=True 显示Excel工作簿;False 不显示工作簿 wb=app.books.open(r'C:\Users\a5470\Desktop\001.xlsx') #写入的表格路径 三、创建xlwings写入函数
通过xlwings操作Excel的过程就是逐层创建对象。使用xlwings读写单元格的基本步骤为: 1、使用xlwings.App() 创建App对象,代表Excel进程; 2、使用app对象books属性的open或add方法,打开或新建Excel工作簿,并得到代表该工作簿的Book对象; 3、使用Book对象Sheets属性,得到代表某工作表的Sheet对象; 4、使用Sheet对象的range方法,得到代表指定单元格区域的Range对象; 5、使用Range对象的value属性............
python操作excel主要用到 xlrd 和 xlwt 这两个库,xlrd读取excel表格数据, 支持 xlsx和xls格式的excel表格 ;xlwt写入excel表格数据; 一、python读取excel表格数据 1、读取excel表格数据常用操作 import xlrd # 打开excel表格 data_excel=xlrd.open_workbook('data/dataset.xlsx') # 获取所有sheet名称 names=data_excel.sheet_names() # 获取book中的sheet工作表的三种方法,返回一个xlrd.sheet.Sheet()对象 https://docs.xlwings.org/zh_CN/latest/ Excel VBA 参考 https://docs.microsoft.com/zh-cn/office/vba/api/overview/excel import xlwings as xw import pandas as pd import random wb = xw..