Excel作为目前最流行的个人计算机数据处理软件,相信大家都使用过,但是在使用excel时,有时长达上千行的数据却让人望而却步,这时候就需要编程来代替我们手动读写数据,这样既节省了时间又提高了效率。接下来我就为大家讲解在使用python读写Excel数据时可能会出现的一些问题及注意事项。

1 收集操作

要想对excel里的数据进行收集,必须使用python的‘xlrd’库(下载方法见文章末尾)。对excel的读取操作其实很类似python对普通TXT文件的操作。

TXT

f = open('users.txt') #读文件时,该文件必须存在

res = f.read()

print(res)

f.close()#关闭

Excel

1.1 第一步导入xlrd库。

import xlrd

1.2 打开当前文件目录下名为‘xxxxx.xlsx’的文档。

workbook =  xlrd.open_workbook("xxxxx.xlsx")# workbook是指向该文件的指针

1.3 打开第一个sheet,这就是和打开txt文件的不同,一个excel文件会有很多的sheet。

sheet = workbook.sheet_by_index(0)#按照索引打开sheet

1.4 这是第二种打开方式,直接通过sheet名打开该文件。

sheet = workbook.sheet_by_name("sheet1")#通过名称获取

1.5 excel是一个电子制表软件,所有读取的数据都在单元格中,因此单元格的行标与列标十分重要(注意不论行标还是列标,索引都是从‘0’开始)。

sheet.nrows#行数

sheet.ncols#列数

1.6 类似直角坐标轴,行、列标确定,即可确定单元格。

sheet.cell_value(i,ii)#行标为i,列标为ii单元格内的数据

2 写入操作

2.1 同样的也需要导入一个库——‘xlwt’。

import xlwt

import xlrd

2.2 因为在对excel进行修改时,我们会复制一遍excel,并在此基础上进行插入、删除等操作,所以必须保留excel原本的格式,如:颜色、字体……因此需在打开excel时加入formatting_info=True 。

workbook=xlrd.open_workbook(“文件名.xlsx",formatting_info=True)

wb=copy(workbook)#复制

Sheet=wb.get_sheet(0)#打开第一个sheet

2.3 对excel填入数据的操作时,括号内依次为:行数、列数、内容。

Sheet.write(rows, ncols ,content)#行数、列数、内容

2.4 excel中会出现将同一行的几个单元格合并之后而产生的‘合并单元格’,此时合并单元格的位置以最小的索引为准。例如两个单元格位置为(1,2)、(1,3),合并之后位置为(1,2)。

2.5 最后在对excel修改完成后,注意一定要保存才能看见修改后的excel。

wb.save("文件名.xlsx")

3 总结

其实不只是excel,对于一些机械性的重复操作,人工操作效率极低。使用编程语言可以让计算机代替我们做这些机械性的工作,既省时又提效。最后关于python如何安装第三方库,可以在cmd窗口直接运行:pip install +包名,如 pip install wlrd。

END