python读写excel
一 写数据
一、基础类介绍 1、工作簿类Workbook简介: importxlwtclassWorkbook(object0):‘‘‘工作簿类,使用xlwt创建excel文件时,首先要实例化此类的对象‘‘‘ def __init__(self, encoding=‘ascii‘, style_compression=0):pass def add_sheet(self,sheetname, cell_overwrite_ok=False):‘‘‘在工作簿中创建工作表 :param sheetname: 工作表的名字 :param cell_overwrite_ok: 如果值为True,则可以像单元格中多次写入数据(覆盖写),相当于修改单元格的数据,如果值为False则多次写入会引发异常。 :return: 返回一个工作表对象(也就是Worksheet()对象)‘‘‘ pass defsave(self,filename_or_stream):‘‘‘将文件以Excel的格式进行保存 :param filename_or_stream:Excel的文件名 :return:‘‘‘ pass 2、工作表类WorkSheet简介 classWorksheet(object):‘‘‘工作表类‘‘‘ def __init__(self, sheetname, parent_book, cell_overwrite_ok=False):‘‘‘实例化对象的参数 :param sheetname: 工作表名 :param parent_book: 工作簿对象 :param cell_overwrite_ok:覆盖写单元格(如果为True可以覆盖写单元格,为False如果覆盖写会抛异常)‘‘‘ pass def write(self, r, c, label="", style=xlwt.Style.default_style):‘‘‘将数据写入工作表的单元格中 :param r: row的缩写,表示行,从0开始计数。 :param c: column的缩写,表示列,从0开始计数。 :param label:要写入的数据(支持的数据类型:int,long,float,字符串,日期,TRUE,FALSE,xlwt.Formula等) :param style:表格样式(样式类:Font, Alignment, Borders, Pattern, Protection。样式函数:easyxf, easyfont, add_palette_colour) :return:‘‘‘ pass 3、创建一个不带样式的基础Excel表 importxlwt#实例化一个工作簿对象 workbook = xlwt.Workbook(encoding = ‘utf-8‘)#获取工作表对象Worksheet worksheet = workbook.add_sheet(‘work_sheet‘)#向工作表中添加数据(参数对应 行, 列, 值) for i in range(3):for j in range(3): worksheet.write(i,j, label= ‘test_‘ +str(j),)#保存数据到硬盘 workbook.save(r‘i:\Excel_test.xls‘) ———————————————— 版权声明:本文为CSDN博主「weixin_39612817」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_39612817/article/details/114394057
2、工作表类WorkSheet简介
classWorksheet(object):‘‘‘工作表类‘‘‘
def __init__(self, sheetname, parent_book, cell_overwrite_ok=False):‘‘‘实例化对象的参数
:param sheetname: 工作表名
:param parent_book: 工作簿对象
:param cell_overwrite_ok:覆盖写单元格(如果为True可以覆盖写单元格,为False如果覆盖写会抛异常)‘‘‘
pass
def write(self, r, c, label="", style=xlwt.Style.default_style):‘‘‘将数据写入工作表的单元格中
:param r: row的缩写,表示行,从0开始计数。
:param c: column的缩写,表示列,从0开始计数。
:param label:要写入的数据(支持的数据类型:int,long,float,字符串,日期,TRUE,FALSE,xlwt.Formula等)
:param style:表格样式(样式类:Font, Alignment, Borders, Pattern, Protection。样式函数:easyxf, easyfont, add_palette_colour)
:return:‘‘‘
pass
3、创建一个不带样式的基础Excel表
importxlwt#实例化一个工作簿对象
workbook = xlwt.Workbook(encoding = ‘utf-8‘)#获取工作表对象Worksheet
worksheet = workbook.add_sheet(‘work_sheet‘)#向工作表中添加数据(参数对应 行, 列, 值)
for i in range(3):for j in range(3):
worksheet.write(i,j, label= ‘test_‘ +str(j),)#保存数据到硬盘
workbook.save(r‘i:\Excel_test.xls‘)
二、xlwt高级应用
1、字体类Font简介
classFont(object):def __init__(self):#twip = 1/20 of a point = 1/1440 of a inch
#usually resolution == 96 pixels per 1 inch
#(rarely 120 pixels per 1 inch or another one)
self.height= 0x00C8 #200: this is font with height 10 points 字体高度
self.italic = False #斜体
self.struck_out = False #删除线
self.outline = False #字体轮廓(没发现有什么变化)
self.shadow = False #字体阴影
self.colour_index = 0x7FFF #这个字体颜色貌似有限制,没太搞懂,范围是0x00到0x35之间有颜色,超过这个范围都是黑色,最大不能超过0xFFFF否则会报错。
self.bold = False #粗体
self._weight = 0x0190 #0x02BC gives bold font # 字体宽度
self.escapement = self.ESCAPEMENT_NONE #字体在单元格中位置,0x00正常,0x01字体上标,0x02字体下标。
self.underline = self.UNDERLINE_NONE #默认字体不带下划线,0x01单下划线,0x02和0x01差不多,0x21双下划线,0x02和0x21差不多
self.family = self.FAMILY_NONE #不清楚做什么的,默认没有,0x01罗马家族,0x02瑞士家族,0x03现代家族,0x04脚本家族,0x05描述家族
self.charset = self.CHARSET_SYS_DEFAULT #字符集,字符集选项
CHARSET_ANSI_LATIN = 0x00CHARSET_SYS_DEFAULT= 0x01CHARSET_SYMBOL= 0x02CHARSET_APPLE_ROMAN= 0x4DCHARSET_ANSI_JAP_SHIFT_JIS= 0x80CHARSET_ANSI_KOR_HANGUL= 0x81CHARSET_ANSI_KOR_JOHAB= 0x82CHARSET_ANSI_CHINESE_GBK= 0x86CHARSET_ANSI_CHINESE_BIG5= 0x88CHARSET_ANSI_GREEK= 0xA1CHARSET_ANSI_TURKISH= 0xA2CHARSET_ANSI_VIETNAMESE= 0xA3CHARSET_ANSI_HEBREW= 0xB1CHARSET_ANSI_ARABIC= 0xB2CHARSET_ANSI_BALTIC= 0xBACHARSET_ANSI_CYRILLIC= 0xCCCHARSET_ANSI_THAI= 0xDECHARSET_ANSI_LATIN_II= 0xEECHARSET_OEM_LATIN_I= 0xFFself.name= ‘Arial‘ #字体
1.1创建一个改变默认字体样式的Excel
importxlwt#实例化一个工作簿对象
workbook = xlwt.Workbook(encoding = ‘utf-8‘)#获取工作表对象Worksheet
worksheet = workbook.add_sheet(‘work_sheet‘)#实例化表格样式对象
xstyle =xlwt.XFStyle()#设置字体样式
xfont =xlwt.Font()
xfont.colour_index= 0x04 #设置字体颜色
xfont.bold = True #字体加粗
xfont.height = 20 * 18 #设置字体高度(20是基数不变,18是字号用于调整大小)
xfont.underline = 0x01 #设置字体带下划线
xfont.name = ‘华文彩云‘ #设置字体
#将字体对象赋值给样式对象
xstyle.font =xfontfor i in range(3):for j in range(3):#向工作表中添加数据(参数对应 行, 列, 值,样式)
worksheet.write(i,j, label = ‘test_‘ + str(j),style=xstyle)#保存数据到硬盘
workbook.save(r‘i:\2.xls‘)
三案例
import xlwt a="src.txt" b="text.xls" d="text.xlsx" f=open(a,'r',encoding='utf-8') lines=f.readlines() print(lines) file=xlwt.Workbook(encoding='utf-8',style_compression=0)#noe工作集 sheet=file.add_sheet('sheet1')#新建表 i=0 #第一行为0 n=0#第一列为0 for line in lines: con=line.strip('\n')#删除换行符 con=line.split('|')#以字表福切片 print(con) print(len(con)) for n in range(len(con)): sheet.write(i,n,con[n])#写数据 i+=1 print('--------------------') file.save(b)#保存表
二 读取数据
import xlrd efilename="text.xlsx" fiier=xlrd.open_workbook(efilename)#create 工作集 sheel_mum=fiier.nsheets #表个数 print(sheel_mum) sheet_name=fiier.sheet_names()#获取名字 print(sheet_name) sheet_namel=fiier.sheet_by_index(1)#获取表名,通过索引 print(sheet_namel) sheet_namen=fiier.sheet_by_name('sheet1')#通过名字获取名字列表 print(sheet_namen) nrows=sheet_namen.nrows #获取行数 ncols=sheet_namen.ncols#获取列数 print(f'nrows is {nrows}') print(f'ncols is {ncols}') row_data=sheet_namen.row_values(0)#获取第几行的数据 print(f'row_data is {row_data}') col_data=sheet_namen.col_values(1)#获取第几列的数据 print(f'col_data is {col_data}') x=0 y=0 one_data=sheet_namen.cell(x,y)#获取单个单元格数据包括类型加值,索引x,y print(f'one_data is {one_data}') cell_value=one_data.value #获取单元格的值 print('cell_value') print(f'cell>value is {cell_value}') cell_type=one_data.ctype#获取单元格类型 print(f'cell_type is {cell_type}') #获取数据类型,0空1字符串2数字3日期4布尔5错误
注意:1读写一起用,2个库一起使用
2如果导入成txt出现打死引号并且换行问题,需要在excle里面,把数据格式转化成数值即可
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了