python读取csv文件,python中csv文件读取
编写文章目录xlsx文件,以将新工作簿和内容添加到新工作表中。使用xlsx文件的读取公式来读取表格。
最近出现了一个需要读取后缀为xlsx的文件的问题,这里总结一下python对xlsx文件的读写。
一般如果是后缀xls,用xlwt和xlrd读写;后缀为xlsx时,用openpyxl读写。本文主要介绍openpyxl库对xlsx的读写。
链接:python的openpyxl模块
编写xlsx文件新建工作簿和新建工作表首先,openpyxl库有一个Workbook对象,表示Excel文档。
工作簿提供的一些常见属性如下:
Semantic active检索当前工作表worksheets并将所有工作表对象(表对象)作为列表返回。read_only以只读模式打开Excel文档。sheetnames以列表形式返回工作簿中表格的名称(表格名称字符串)。工作簿对象提供的一些常用方法如下:
所有表的semantic _ sheet _ names get _ sheet _ names(新版本不推荐)。您可以从工作簿的sheetnames属性中获取它。)get_sheet_by_name从表名中检索工作表对象。)新版本也不推荐。工作簿[使用表名获取get_active_sheet以获取活动表(建议在较新版本中使用active属性)。使用remove_sheet获取表create _ sheee _ sheeet。
fropenpyxlimportworkbook # workbook对象WB=workbook(如果没有指定# sheet index和表名,默认情况下在第二个表位置指定新表名sheet 1 WB . sheet title= sheet 2 )#获取当前活动的表。默认情况下,对于第一个sheetws=WB.activeprint(ws),当前工作簿中的所有sheet对象sheets=get所有工作表的名称sheets _ name=wb.save另存为工作簿data1.xlsxwb.save(data1.xlsx)),打印结果如下:结果显示当前工作表名称为sheet,新工作表名称为sheet2。Wb。Worksheets返回一个worksheet对象,wb.sheetnames返回一个表名字符串列表。
向工作表 sheet [工作表 Sheet ,工作表 sheet2][Sheet , sheet2]添加内容的workbook对象是一个Workbook对象。
工作表对象的属性如下:
该属性的含义是标题表的标题,维度表的大小。这里的大小是指包含数据的表的大小。也就是说,获取左上角坐标的单元生成器列:右下角的坐标;max_row表的最大行数;min_row表的最小行数;max_column表的最大列数;和min_column表的最小行数。
语义iter_rows逐行获取所有单元格,内置属性按(min_row,max_row,min_col,max_col) iter_columns获取所有单元格。
fropenpyxlimportworkbook # workbook对象WB=workbook(#)获取当前活动的工作表,添加的默认值。value= score row 1=[ class ]88)ws . append(row 1)ws . append(row 1)WB . save) data1 . xlsx 到第一个sheetws [a1]如下所示
对于表格,每个网格都是一个单元格对象,它可以
用于定位表格中的任何位置。
单元对象的常见属性如下:
意思是行单元所在的行、列单元所在的列、值单元的值、坐标单元的坐标。因此,您也可以通过单元格对象向工作表添加内容。以下是向表格添加标题的代码:
Ws。Cell (row=1,column=1)= class ws.cell (1,2)。value= name ws.cell (1,3)。value= score xlsx文件通过cell对象读取每个单元格的内容,代码如下:
open pyxl import load _ workbook WB=load _ workbook( data1 . xlsx )sheets=WB . sheets #获取当前所有sheetprints (sheets) #获取第一张sheet 1=sheets[0]# 1=WB[ sheet ]#还可以通过已知的表名# Read Cell _ 11=sheet1.cell (1,1)获取sheetprint (sheet1)。value print(cell _ 11)cell _ 11=sheet 1 . cell(1,2)。valueprint (cell _ 11)按单元格对象。
[工作表 sheet]工作表 sheet classname使用以下代码读取表中的行或列:
从安装导入load _ workbook WB=load _ workbook( data1。xlsx )张=WB。工作表#获取当前所有的单张印刷品(张)#获取第一张纸张纸张1=纸张[0]打印(纸张1)#获取第一行所有数据对于第一页[1]中的行,row 1=[]print(sheet 1[1]):print(row)row 1。追加(行。值)打印(第1行)#获取第一列所有数据col 1=[]对于工作表1中的col[ A ]:col 1。追加(列值)打印(列1)结果如下,表中的每一行或者每一列都是一个元组,每一个元素都是一个细胞对象。因此要获取数值必须用细胞对象的价值属性。
[工作表工作表]工作表工作表(单元格工作表 A1,单元格活页 . B1,单元格工作表 . C1)单元格“工作表”。a1单元格工作表。B1单元格表。C1[ class , name , score][class , class1 , class2]通过表对象的行和列属性读取表的行或者列,代码如下:
从安装导入load _ workbook WB=load _ workbook( data1。xlsx )张=WB。工作表#获取当前所有的单张印刷品(张)#获取第一张纸张纸张1=纸张[0]打印(纸张1)行=纸张1。行和列=工作表1。列打印(行)打印(列)打印()#迭代读取所有的行对于行中的行:print(row)row _ val=[行中列的列值]print(row _ val)print()#迭代读取所有的列对于列中的列:print(col)col _ val=[row。col]print中的行的值(col _ val)结果如下,首先,第一部分的第三行和第四行表明获取的行或者列是生成器对象对象。而从第二部分、第三部分奇数行打印的结果看,生成器对象对象的每一个元素都是一个元组,而元组中的每一个元素是细胞对象。
[行中列的列值]可以理解为循环读取排中的每一个细胞对象,并获取细胞对象的值,并将所有的值放到一个列表中。
[工作表工作表]工作表工作表生成器对象工作表0x 000001 DC 06330 de 0生成器处的_ cells _ by _ row对象工作表位于0x 000001 DC 06330 f 48(单元格工作表 A1,单元格活页 . B1,单元格Sheet.C1)[class , name , score](单元格工作表 . A2,单元格活页 B2,单元格工作表 . C2)[class1 ,张三,90](单元格活页 . A3,单元格工作表 . B3,单元格Sheet.C3)[class2 , lisi ,88](单元格工作表 A1,单元格工作表 . A2,单元格工作表 . A3)[.读取有公式的表格如果碰到带有公式的表格,而只想要读取其中计算的结果时,可以在读取工作簿的时候加上data_only=True的属性,例如:
从安装导入load _ workbook WB=load _ workbook( data1。xlsx ,data_only=True)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。