day08代码操纵xls文档

将字典内容打印为字符串并分行的方法

data = {'姓名': '赵军力', '英语': 69, '办公软件操作': 69, '电子商务': 63, '计算机基础': 76}

#'英语: 69分\n办公软件操作:69分\n电子商务:63分\n计算机基础:76分'

lst = []
lst1 = ''
for _ in data:
    if _ == '姓名':
        continue
    else:
        lst.append('%s:%s分\n' % (_,data[_]))
        # lst.append(_)
        # lst.append(':')
        # lst.append(data[_])
        # lst.append('分\n')
for i in lst:
    lst1 = lst1 + str(i)
# lst1=str(lst)
print(lst1)
# print(type(lst1))

xls文件读操作

import xlrd

#1.打开excel文件获取工作簿对象
wb = xlrd.open_workbook('files/data1.xls')

#2.获取所有工作表的表名
names = wb.sheet_names()
print(names)

#3.获取工作表
#工作簿对象.sheet_by_name(表名) - 获取指定表名对应的工作表
sheet1 = wb.sheet_by_name('students')
print(sheet1)

#工作簿对象.sheet_by_index(下标)- 获取指定下标对应的工作表
sheet2 = wb.sheet_by_index(1)
print(sheet2)

#4.获取表的行数和列数(有数据部分的行和列)
print(sheet1.nrows)
print(sheet1.ncols)

#5.按行或者按列获取数据
#工作表.row_values(行下标) -- 获取指定行的所有数据
result = sheet1.row_values(1)
print(result)
#工作表.col_values(列下标) --  获取指定列中的所有数据
result = sheet1.col_values(3)
print(result)
#工作表.col_values(列下标,开始行下标,结束行下标) -- 获取指定列范围的数据
#工作表.row_values(行下标,开始列下标,结束列下标) -- 获取指定列范围的数据

result= sheet1.row_values(2,0,3)
print(result)
result = sheet1.col_values(1,0,3)
print(result)

#练习:读excel文件data1.xls中students表中的数据,得到一个大的列表,列表中的每一个元素是每一行内容对应的小列表

data = []
if os.path.exists('files/data1.xls'):
    wb = xlrd.open_workbook('files/data1.xls')
else:
    print('Error! Unable to find file!')
names = wb.sheet_names()
if 'students' in names:
    sheet = wb.sheet_by_name('students')
else:
    print('Error! Unable to find file')

row = sheet.nrows
col = sheet.ncols
#print(row, col)
for _ in range(1, row):
    result = sheet.row_values(_, 0, col)
    data.append(result)
lst = []
dic = {}
lst1 = []
datas = sheet.row_values(0)
for _ in range(1,row):
    lst = sheet.row_values(_, 0,row)
    dic = dict(zip(datas,lst))
    lst1.append(dic)
print(lst1)
print(data)

xls文件写操作

import xlwt
import os
import xlrd
#创建工作簿
wb = xlwt.Workbook()
#创建指定名字的工作表
sheet = wb.add_sheet('students')
#写入信息
#sheet.write(行下标,列下标,数据)
sheet.write(0,0,'name')

# 将data中的数据写入到data3.xls文件中
# 第一行的内容分别是:name、gender、age、score
data = [
    ['小明', '男', 20.0, 99.0],
    ['张三', '男', 25.0, 87.0],
    ['小花', '女', 22.0, 95.0],
    ['老王', '男', 30.0, 77.0]
]
#创建工作簿和工作表
if os.path.isfile('files/data3.xls'):
    wb = xlrd.open_workbook('files/data3.xls')
    print('----')
    names = wb.sheet_names()
    if 'students' in names:
        sheet2 = wb.sheet_by_name('students')
    else:
        sheet2 = wb.add_sheet('students')
else:
    wb = xlwt.Workbook()
    sheet2 = wb.add_sheet('students')
    print('***')
#写入第一行
sheet2.write(0, 0, 'name')
sheet2.write(0, 1, 'gender')
sheet2.write(0, 2, 'age')
sheet2.write(0, 3,'score')
#写入数据
for _ in range(1,len(data)+1):
    col = 0
    for i in data[_-1]:
        sheet2.write(_,col,i)
        col += 1


wb.save('files/data3.xls')

文件设置单元格样式

import xlwt

wb = xlwt.Workbook()
sheet = wb.add_sheet('各种样式')
sheet.write(0,0,'香蕉')
#创建样式对象
style1 = xlwt.XFStyle()

#创建字体对象
font1 = xlwt.Font()
#创建填充对象
pattern1 = xlwt.Pattern()


#将字体对象关联到样式中
style1.font = font1
#将填充对象关联到样式中
style1.pattern = pattern1


#获取所有颜色对应的键值和数字
print(xlwt.Style.colour_map)


#========字体样式============
#设置字体相关属性
font1.name = '宋体' #设置字体名称
font1.height = 20*20 #设置字体大小<如果希望字体大小是20,就应该设置为20*20>
font1.colour_index = 28 #设置字体颜色
font1.bold = True   #是否加粗
font1.italic = True  #是否倾斜

#=========填充样式============
pattern1.pattern = xlwt.Pattern.SOLID_PATTERN #设置填充模式,整个单元格一起填充
pattern1.pattern_fore_colour = 52  #设置填充颜色

#==========设置行高和列宽===========
#1.设置列宽度
sheet.col(0).width = 50*256

#2.设置行高
#1.允许设置某一行的高度
sheet.row(2).height = True
#2.设置某一行的高度
sheet.row(2).height = 40*60

#写入数据时添加样式
sheet.write(1,0,'苹果',style1)


wb.save('files/data4.xls')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值