当前位置:首页 » 编程语言 » excelpythonxlsx

excelpythonxlsx

发布时间: 2023-06-10 16:42:52

python处理excel教程是什么

python处理excel教程:首先打开pycharm工具,创建python项目;然后新建python文件,依次导入openpyxl、xlrd和xlwt,并定义函数;接着向excel插入数据;最后调用函数加载数据即可。
python处理excel教程:
1、打开pycharm工具,创建一个python项目,并打开项目
2、在指定文件夹下,新建python文件,依次导入openpyxl、xlrd和xlwt
3、定义函数write_data,创建excel的sheet页,然后向excel插入数据
4、再定义设置excel文档格式样式函数setExcelStyle,传入几个参数
5、判断__name__是否等于__main__,调用函数write_data()
6、保存代码并运行python文件,查看是否生成sales.xlsx文件
7、使用openpyxl模块中的load_workbook()方法,加载sales.xlsx文件
8、获取对应sheet页,然后获取对应单元格的值
以上就是小编分享的关于python处理excel教程是什么的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!

② 怎样用python,读取excel中的一列数据

用python读取excel中的一列数据步骤如下:

1、首先打开dos命令窗,安装必须的两个库,命令是:pip3 installxlrd;Pip3 install xlwt。

③ Python怎样给Excel 2007版以上的xlsx文件追加数据

背景

Python中,xlrd主要用来读取excel文件, xlwt主要用来写文件,本文主要介绍打开已经存在的excel的xls文件,然后在最后新的一行的数据。要用到xlutils包,它依赖于前两个包。

折腾过程

1.找到了参考资料:

writing to existing workbook using xlwt

其实是没有直接实现:

打开已有的excel文件,然后在文件最后写入,添加新数据

的函数的。

只不过,可以利用:

Working with Excel Files in Python

中的库,组合实现。

2.writing to existing workbook using xlwt

给出了示例代码:

?

rom xlutils.importfromxlrdimportopen__ROW=297 # 0 based (subtract 1 from excel row number)col_age_november=1col_summer1=2col_fall1=3rb=open_workbook(file_path,formatting_info=True)r_sheet=rb.sheet_by_index(0)# read only to introspect the filewb=(rb)# a writable (I can't read values out of this, only write to it)w_sheet=wb.get_sheet(0)# the sheet to write to within the writable forrow_indexinrange(START_ROW, r_sheet.nrows):age_nov=r_sheet.cell(row_index, col_age_november).valueifage_nov==3:#If 3, then Combo I 3-4 year old for both summer1 and fall1w_sheet.write(row_index, col_summer1,'Combo I 3-4 year old')w_sheet.write(row_index, col_fall1,'Combo I 3-4 year old')wb.save(file_path+'.out' + os.path.splitext(file_path)[-1])

3. 刚又看到,有更简洁的代码:

?

1234fromxlutils.importw=('book1.xls')w.get_sheet(0).write(0,0,"foo")w.save('book2.xls')

4.现在打算去试试。

先去安装xlrd:

【记录】Python中安装xlrd模块

6.再去安装xlutils:

【记录】Python中安装可以读写excel的xls文件的xlutils模块(需依赖于xlrd和xlwt)

7.接着可以去写代码了。

8.先是:

【已解决】Python中使用xlutils.出错:AttributeError: ‘mole’ object has no attribute ‘’

9.后是:

【已解决】Python中使用xlutils的出错:AttributeError: ‘str’ object has no attribute ‘datemode’

10.后来是用如下代码:

?

;importxlrd;#import xlutils;fromxlutils.import;#init xls file#styleBlueBkg= xlwt.easyxf('pattern: pattern solid, fore_colour sky_blue;');#styleBold = xlwt.easyxf('font: bold on');styleBoldRed=xlwt.easyxf('font: color-index red, bold on');headerStyle=styleBoldRed;wb=xlwt.Workbook();ws=wb.add_sheet(gConst['xls']['sheetName']);ws.write(0,0,"Header", headerStyle);ws.write(0,1,"CatalogNumber", headerStyle);ws.write(0,2,"PartNumber", headerStyle);wb.save(gConst['xls']['fileName']);#open existed xls file#newWb = xlutils.(gConst['xls']['fileName']);#newWb = (gConst['xls']['fileName']);oldWb=xlrd.open_workbook(gConst['xls']['fileName']);printoldWb;#<xlrd.book.Book object at 0x000000000315C940>newWb=(oldWb);printnewWb;#<xlwt.Workbook.Workbook object at 0x000000000315F470>newWs=newWb.get_sheet(0);newWs.write(1,0,"value1");newWs.write(1,1,"value2");newWs.write(1,2,"value3");print"write new values ok";newWb.save(gConst['xls']['fileName']);print"save with same name ok";

实现了,打开,刚刚保存的,已经存在的xls文件,

然后写入新数据的目的。

但是有个缺点,

第一次保存时的,带格式(标题内容为红色粗体)的内容:

重新写入新数据,再保存时,却丢失了之前的格式(标题没了红色粗体了):

11.后来还是参考:

writing to existing workbook using xlwt

中的那个标准答案,在用xlrd.open_workbook时,添加对应的参数formatting_info=True,就可以保留原有格式了。

完整代码:

?

;importxlrd;#import xlutils;fromxlutils.import;#init xls file#styleBlueBkg= xlwt.easyxf('pattern: pattern solid, fore_colour sky_blue;');#styleBold = xlwt.easyxf('font: bold on');styleBoldRed=xlwt.easyxf('font: color-index red, bold on');headerStyle=styleBoldRed;wb=xlwt.Workbook();ws=wb.add_sheet(gConst['xls']['sheetName']);ws.write(0,0,"Header", headerStyle);ws.write(0,1,"CatalogNumber", headerStyle);ws.write(0,2,"PartNumber", headerStyle);wb.save(gConst['xls']['fileName']);#open existed xls file#newWb = xlutils.(gConst['xls']['fileName']);#newWb = (gConst['xls']['fileName']);oldWb=xlrd.open_workbook(gConst['xls']['fileName'], formatting_info=True);printoldWb;#<xlrd.book.Book object at 0x000000000315C940>newWb=(oldWb);printnewWb;#<xlwt.Workbook.Workbook object at 0x000000000315F470>newWs=newWb.get_sheet(0);newWs.write(1,0,"value1");newWs.write(1,1,"value2");newWs.write(1,2,"value3");print"write new values ok";newWb.save(gConst['xls']['fileName']);print"save with same name ok";

?

1

最后重新写入的数据,就可以保留之前的格式了(标题为红色粗体):

总结

python中操作,本身就复杂的xls文件,还是有点小麻烦的。

想要,往已经存在的xls文件中,写入新的行,新的数据,对应的逻辑为:

  • 用xlrd.open_workbook打开已有的xsl文件

  • 注意添加参数formatting_info=True,得以保存之前数据的格式

  • 然后用,from xlutils. import ;,之后的去从打开的xlrd的Book变量中,拷贝出一份,成为新的xlwt的Workbook变量

  • 然后对于xlwt的Workbook变量,就是正常的:

  • 通过get_sheet去获得对应的sheet

  • 拿到sheet变量后,就可以往sheet中,写入新的数据

  • 写完新数据后,最终save保存

  • 相关完整代码为:

    ?

    232425262728
  • importxlwt;importxlrd;#import xlutils;fromxlutils.import;styleBoldRed=xlwt.easyxf('font: color-index red, bold on');headerStyle=styleBoldRed;wb=xlwt.Workbook();ws=wb.add_sheet(gConst['xls']['sheetName']);ws.write(0,0,"Header", headerStyle);ws.write(0,1,"CatalogNumber", headerStyle);ws.write(0,2,"PartNumber", headerStyle);wb.save(gConst['xls']['fileName']);#open existed xls file#newWb = xlutils.(gConst['xls']['fileName']);#newWb = (gConst['xls']['fileName']);oldWb=xlrd.open_workbook(gConst['xls']['fileName'], formatting_info=True);printoldWb;#<xlrd.book.Book object at 0x000000000315C940>newWb=(oldWb);printnewWb;#<xlwt.Workbook.Workbook object at 0x000000000315F470>newWs=newWb.get_sheet(0);newWs.write(1,0,"value1");newWs.write(1,1,"value2");newWs.write(1,2,"value3");print"write new values ok";newWb.save(gConst['xls']['fileName']);print"save with same name ok";

④ python对excel操作

Python对于Excel的操作是多种多样的,掌握了相关用法就可以随心所欲的操作数据了!

操作xls文件

xlrd(读操作):

import xlrd

1、引入xlrd模块

workbook=xlrd.open_workbook("36.xls")

2、打开[36.xls]文件,获取excel文件的workbook(工作簿)对象

names=workbook.sheet_names()

3、获取所有sheet的名字

worksheet=workbook.sheet_by_index(0)

4、通过sheet索引获得sheet对象

worksheet为excel表第一个sheet表的实例化对象

worksheet=workbook.sheet_by_name("各省市")

5、通过sheet名获得sheet对象

worksheet为excel表sheet名为【各省市】的实例化对象

nrows=worksheet.nrows

6、获取该表的总行数

ncols=worksheet.ncols

7、获取该表的总列数

row_data=worksheet.row_values(n)

8、获取该表第n行的内容

col_data=worksheet.col_values(n)

9、获取该表第n列的内容

cell_value=worksheet.cell_value(i,j)

10、获取该表第i行第j列的单元格内容

xlwt(写操作):

import xlwt

1、引入xlwt模块

book=xlwt.Workbook(encoding="utf-8")

2、创建一个Workbook对象,相当于创建了一个Excel文件

sheet = book.add_sheet('test')

3、创建一个sheet对象,一个sheet对象对应Excel文件中的一张表格。

sheet.write(i, j, '各省市')

4、向sheet表的第i行第j列,写入'各省市'

book.save('Data\\36.xls')

5、保存为Data目录下【36.xls】文件

操作xlsx文件

openpyxl(读操作):

import openpyxl

1、引入openpyxl模块

workbook=openpyxl.load_workbook("36.xlsx")

2、打开[36.xlsx]文件,获取excel文件的workbook(工作簿)对象

names=workbook.sheetnames

worksheet=workbook.worksheets[0]

worksheet=workbook["各省市"]

ws = workbook.active

6、获取当前活跃的worksheet,默认就是第一个worksheet

nrows=worksheet.max_row

7、获取该表的总行数

ncols=worksheet.max_column

8、获取该表的总列数

content_A1= worksheet['A1'].value

9、获取该表A1单元格的内容

content_A1=worksheet.cell(row=1,column=1).value

10、获取该表第1列第1列的内容

openpyxl(写操作):

workbook=openpyxl.Workbook()worksheet = workbook.active

3、获取当前活跃的worksheet,默认就是第一个worksheet

worksheet.title="test"

4、worksheet的名称设置为"test"

worksheet = workbook.create_sheet()

5、创建一个新的sheet表,默认插在工作簿末尾

worksheet.cell(i,j,'空')

6、第i行第j列的值改成'空'

worksheet["B2"]="空"

7、将B2的值改成'空'

worksheet.insert_cols(1)

8、在第一列之前插入一列

worksheet.append(["新增","台湾省"])

9、添加行

workbook.save("Data\\36.xlsx")

10、保存为Data目录下【36.xlsx】文件

pandas处理excel文件

pandas操作:

import pandas as pd

1、引入pandas模块

data = pd.read_excel('36.xls')

2、读取[36.xls]或者[36.xlsx]文件

data = pd.read_csv('36.csv')

3、读取[36.csv]文件

data=data.dropna(subset=['店铺'])

4、过滤掉data店铺列有缺失的数据

data.sort_values("客户网名", inplace=True)

5、将data数据按照客户网名列进行从小到大排序

data = pd.read_csv(36.csv, skiprows = [0,1,2],sep = None, skipfooter = 4)

6、读取[36.csv]文件,前三行和后四行的数据略过

data = data.fillna('空')

7、将data中的空白处填充成'空'

data.drop_plicates('订单','first',inplace=True)

8、data中的数据,按照【订单】列做去重处理,保留第一条数据

data=pd.DataFrame(data,columns=['订单','仓库'])

9、只保留data中【订单】【仓库】列的数据

data = data[(data[u'展现量'] > 0)]

10、只保留【展现量】列中大于0的数据

data= data[data["订单"].str.contains('000')]

11、只保留【订单】列中包含'000'的数据

data= data[data["仓库"]=='正品仓']

12、只保留【仓库】列是'正品仓'的数据

xs= data[data["店铺"]=='南极人']['销售额']

13、获取店铺是南极人的销售额数据

data['订单'] = data['订单'].str[3:7]

14、【订单】列的值只保留4-8个字节的值

data["邮资"] = np.where((data['店铺'].str.contains('T|t')) & -(data['仓库'] == '代发仓'), 8, data['邮资'])

15、满足店铺列包含 T 或 t 并且仓库不等于'代发仓'的话,将邮资的值改成8,否则值不变

data = np.array(data).tolist()

16、将data从DataFrame转换成列表

data=pd.DataFrame(data)

17、将列表转换成DataFrame格式

zhan = data[u'展现'].sum().round(2)

18、将data中所有展现列数据求和,并取两位小数

sum=data.groupby(['店铺'])['刷单'].sum()

19、将data中按照店铺对刷单进行求和

counts=data['店铺'].value_counts()

20、将data按照店铺进行计算

avg=data.groupby(['店铺'])['刷单'].mean()

21、将data按照店铺对刷单进行求平均数

count = pd.concat([counts,sum], axis=1, ignore_index=True, sort=True)

22、将counts和sum两个DataFrame进行了组合

count=count.rename(index=str, columns={0: "订单", 1: "成本"})

23、将新生成的DataFrame列名进行修改

data = pd.merge(sum, counts, how='left', left_on='店铺', right_on='店铺')

24、将列表转换成DataFrame格式

from openpyxl import Workbook 

wb=Workbook()  

ws1=wb.active 

data.to_excel('36.xlsx') 

wb.close()

25、data完整的写入到关闭过程,执行此操作的时候【36.xlsx】不能是打开状态

excel格式操作

样式处理:

1、打开【36.xlsx】

sheet=workbook.worksheets[0]

2、将第一个sheet对象赋值给sheet

sheet.column_dimensions['A'].width = 20.0

3、将A列的宽度设置为20

sheet.row_dismensions[1].height = 20.0

4、将第一行的行高设置为20

sheet.merge_cells('A1:A2')

5、将sheet表A1和A2单元格合并

sheet.unmerge_cells('A1:A2')

6、将sheet表A1和A2单元格取消合并

sheet.insert_rows(2,2)

7、将sheet表从第2行插入2行

sheet.insert_cols(3,2)

8、将sheet表从第3列插入2列

sheet.delete_rows(2)

9、删除第2行

sheet.delete_cols(3, 2)

10、将sheet表从第3列开始删除2列

from openpyxl.styles import Font, Border, PatternFill, colors, Alignment

11、分别引入字体、边框、图案填充、颜色、对齐方式

sheet.cell(i,j).font = Font(name='Times New Roman', size=14, bold=True, color=colors.WHITE)

12、设置sheet表第 i 行第 j 列的字体

sheet.cell(i,j).alignment = Alignment(horizontal='center', vertical='center')

13、设置sheet表第 i 行第 j 列的字体对齐方式

left, right, top, bottom = [Side(style='thin', color='000000')] * 4sheet.cell(i,j).border = Border(left=left, right=right, top=top, bottom=bottom)

14、引入边框样式并调用

fill = PatternFill("solid", fgColor="1874CD")sheet.cell(1,j).fill = fill

15、引入填充样式,并调用

import xlrd

from openpyxl import Workbook

from openpyxl import load_workbook

workbook=load_workbook(filename='C:/Users/EDZ/Desktop/工作/2021.08.03/大兄弟.xlsx')

sheet=workbook.active

sheet.insert_cols(idx=1)

sheet.merge_cells(A1:A3)

sheet['A1']=['上海','山东','浙江']

⑤ Python处理Excel文件(csv, xls, xlsx)

Excel文件格式主要有csv,xlsx和xlsx,对于不同的格式,我们使用不同的包来进行处理。

其中, encoding='utf-8-sig' 是为了编码正常可以正确显示中文, spamreader 中的每一个 row 为list格式,可以循环取出每个单元格的值。

结果:

如果csv文件是数据类的,那么使用 pandas 包读写数据会更方便。

结果:

参数:

结果:

参数:

Excel文件有三层对象:工作薄、工作表和三元格,分别对应 openpyxl 包中的workbook、sheet和cell。

: openpyxl 功能全面,还支持:合并单元格、数学运算、单元格格式、迭代器 ws.iter_rows() 操作等。

: xlrd 打开为只读模式,不可修改。

结果:

结果:

⑥ Python中操作Excel最好用的模块是

Python中的模块也称为库,在Python中操作Excel的模块有很多。

优缺点如下:

**1、Pandas模块**

Pandas是Python的一一个开源数据分析模块,可用于数据挖掘和数据分析,同时也提供数据清洗功能,可以说它是日前Python数据分析的必备工具之一。Pandas能够处理类似电子表格的数据,用于数据快速加载、操作、对齐、合并、数据预处理等。

Pandas通过对Excel文件的读写实现数据输入、输出,Pandas支持.xls和.xlsx格式文件的读写,支持只加载每个表的单一工作页。

import pandas as pd

df=pd.read_excel(r'E:ban.xlsx') #pandas 导入库获取excel表的数据内容

df`

**2、xlwings模块**

xlwings模块可以实现Python中调用Excel,也可以从Excel调用Python,这个模块支持支持.xls和.xlsx格式文件的读写,支持对这类文件的操作,还支持使用VBA,具有强大的转换功能,并且可以处理大部分数据类型。

**3、Xlrd模块**

xlrd模块可以读取Excel文件,其对Excel文件的读取可以实现比较精细的控制。虽然现在使用Pandas模块读取和保存Excel文件往往更加方便快捷,但在某些场景下,依然需要xlrd这种更底层的模块来实现对Excel文件读取的控制。

xlrd模块支持.xls、.xlsx格式文件的读取,但不支持写信息。

**4、xlwt模块**

前面xlrd模块可以读取Excel文件,但不能写。而xlwt模块可以写、可以修改Excel文件,但不能读,且只支持.xls格式文件的写操作。

**5、xlutils模块**

xlutils也是一个处理Excel文件的模块,但它不能对Excel文件进行读和写的操作,但依赖于xlrd模块和xlwt模块。xlutils模块支持.xls格式文件,不支持.xlsx格式文件。

**6、openpyxl模块**

openpyxl模块可以对.xlsx格式的Excel文件进行读写操作,特点是读取快、写入慢,且不能操作.xls格式文件。

**7、xlsxwriter模块**

xlsxwriter模块支持多种Excel功能,可以写.xlsx格式的Excel文件,而且速度快、占用内存空间小,但不支持读或者修改现有的Excel文件。

**8、win32com模块**

win32com模块支持.xls、.xlsx格式的Excel文件的读、写和修改,读写速度快。但win32com模块存在于pywin32的模块中,自身没有完善的文档,使用起来不太方便。

**9、分析总结**

Pandas模块把Excel当作数据读写的容器,为其强大的数据分析服务,因此读写性能的表现中规中矩。xlwings和win32com这两个模块都拥有很好的读写性能,强大的转换器可以处理大部分数据类型,同时,可以在程序运行时,在打开的Excel文件中进行实时操作,实现过程的可视化。另外,xlwings模块的数据结构转换器使其可以快速地为Excel文件添加二维数据结构,而不需要在Excel文件中重定位数据的行和列,因此笔者认为,从读写的便捷性来看,xlwings模块比较好用一些。

热点内容
红米手机录音文件夹 发布:2025-02-13 19:41:33 浏览:235
android适配屏幕 发布:2025-02-13 19:40:30 浏览:792
解压球0 发布:2025-02-13 19:38:19 浏览:642
早春开花植物如何配置 发布:2025-02-13 19:22:19 浏览:50
安卓怎么获得root录音权限 发布:2025-02-13 19:21:22 浏览:170
访问学者留学基金委 发布:2025-02-13 19:21:13 浏览:430
制定编程 发布:2025-02-13 19:11:39 浏览:58
微商相册安卓与苹果机哪个方便 发布:2025-02-13 19:10:02 浏览:6
优酷视频缓存设置 发布:2025-02-13 19:04:03 浏览:156
如何识别网络配置 发布:2025-02-13 19:04:02 浏览:300