1. 安装 xlwt 库
Python 写入数据到 Excel 工作簿中可以使用第三方库 xlwt. xlwt 拆分下来看就是 excel 和 write 的简化拼接,意思就是写数据到 Excel. 这个第三方库的 pip 安装命令如下所示:
pip install xlwt
2. 使用 xlwt 库
使用 xlwt 写入到 Excel 工作簿支持两种扩展名:xls 和 xlsx. 这两种扩展名代表两种不同的 Excel 版本。 xlsx 为 Excel 2007 及以后的版本扩展名,它的最大支持行数为 1048576, 最大支持列数为 16384.
3. 从excel文件读数据
import xlrd
def import_excel():
#打开需要读取的工作薄
wb = xlrd.open_workbook('./datasets/test1.xlsx')
sheet = wb.sheet_by_index(0) #用sheet变量指向工作薄里的第一个工作表
tables = [] #创建一个空列表,存储Excel的数据
for rown in range(sheet.nrows): #sheet.nrows指工作表里的数据行数
array = {'road_name':'','bus_plate':'','road_type':'','site':''}
array['road_name'] = sheet.cell_value(rown,0)
array['bus_plate'] = sheet.cell_value(rown,1)
array['road_type'] = sheet.cell_value(rown,2)
array['site'] = sheet.cell_value(rown,3)
tables.append(array)
return tables
if __name__ == '__main__':
#将excel表格的内容导入到列表中
tables = import_excel()
for i in tables:
print(i)
4. 将数据写入EXCEL表格中
import xlwt
# 新建工作簿
my_workbook = xlwt.Workbook()
# 创建新的工作表对象 worksheet, 并取名为 test_sheet
sheet = my_workbook.add_sheet('test_sheet')
name_list = ['姓名', '年龄', '性别', '学号']
for i in range(len(name_list)):
sheet.write(0,i, name_list[i])
data = [
{
'name': '华仔仔',
'age': 12,
'gender': '男',
'xuehao': '001'
},
{
'name': '华仔',
'age': 15,
'gender': '男',
'xuehao': '002'
},
{
'name': '帅气的华仔仔',
'age': 18,
'gender': '男',
'xuehao': '003'
},
{
'name': '华仔仔coding',
'age': 20,
'gender': '男',
'xuehao': '004'
}
]
for i, item in enumerate(data): #遍历字典的每一项
sheet.write(i+1, 0, item['name'])
sheet.write(i+1, 1, item['age'])
sheet.write(i+1, 2, item['gender'])
sheet.write(i+1, 3, item['xuehao'])
# 保存文件
my_workbook.save('test.xlsx') #生成的工作薄test.xlsx与当前代码文件在同一个位置
5.比较两个结构相同的文件里面的内容是否相同
import xlrd
wb0 = xlrd.open_workbook('record_classifier0.xlsx')
sheet0 = wb0.sheet_by_index(0)
wb1 = xlrd.open_workbook('record_classifier1.xlsx')
sheet1 = wb1.sheet_by_index(0)
unequal_num=0 #不相同值的个数
for rown in range(sheet0.nrows):
for i in range(4):
cv0= sheet0.cell_value(rown,i)
cv1= sheet1.cell_value(rown,i)
if(cv0!=cv1):
unequal_num += 1
print(unequal_num)