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里面,把数据格式转化成数值即可

posted @   菩提浪子  阅读(580)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示