您的位置:首页 > 编程语言 > Python开发

python入门系列10―——Excel操作

2017-06-28 10:49 411 查看
欢迎前往我的个人博客

pip 是一个安装和管理 Python 包的工具

下载地址:http://pypi.python.org/pypi/pip#downloads

安装步骤:

下载pip-9.0.1.tar.gz (md5, pgp)完成之后,解压到一个文件夹,用CMD控制台进入解压目录,输入:

python setup.py install

如果提示:

Traceback (most recent call last):
File "setup.py", line 6, in <module>
from setuptools import setup,
find_packages ImportError: No module named setuptools
说名缺少一个安装程序:setuptools

下载地址:https://pypi.python.org/pypi/setuptools

下载完成解压CMD到该目录下:执行

https://pypi.python.org/pypi/setuptools
然后继续安装pip即可

安装好之后,命令行输入pip,显示‘pip’不是内部命令,也不是可运行的程序。

因为我们还没有添加环境变量。

D:\Python27\Scripts (根据自己的python安装目录)

输入:pip

会出现帮助信息表示成功

我们之前用python可以对文件进行操作,现在我们来对excel操作。

我们需要使用一个第三方模块,xlrd

因为我们安装了pip,所以我们直接输入:

pip install xlrd
然后python会自动下载完成安装很方便。

关于Excel的读取:

import xlrd
data = xlrd.open_workbook('test.xls') # 打开xls文件
table = data.sheets()[0] # 打开第一张表
nrows = table.nrows # 获取表的行数
ncols = table.ncols # 获取表的列数
for x in range(nrows):  # 循环逐行打印
for y in range(ncols):
cell=table.cell(x,y).value  #获取单元格内容
print cell," "
if y==ncols-1:
print "\n"

print table.row_values(0) #获取第一行内容
print table.col_values(2) #获取第三列内容


创建Excel需要导入xlwt,所以需要在cmd下输入:pip install xlwt

创建Excel:

import xlwt
#创建workbook和sheet对象
file = xlwt.Workbook() #注意Workbook的开头W要大写
sheet1 = file.add_sheet('sheet1',cell_overwrite_ok=True)
#cell_overwrite_ok==True表示可以重复写入
#向sheet页中写入数据
sheet1.write(0,0,'1') #往第一行第一列插入
sheet1.write(0,1,'2')    #往第一行第二列插入

file.save('test2.xls') #保存
print "finish"


使用xlrd读取文件,使用xlwt生成Excel文件(可以控制Excel中单元格的格式)。但是用xlrd读取excel是不能对其进行操作的;而xlwt生成excel文件是不能在已有的excel文件基础上进行修改的,如需要修改文件就要使用xluntils模块。

首先cmd下输入:pip install  xlutils

import xlrd
import xlutils.copy
#打开一个workbook
rb = xlrd.open_workbook('test.xls')
wb = xlutils.copy.copy(rb)      #复制
ws = wb.get_sheet(0)            #获取第一个sheet
ws.write(1, 2, 99)              #第二行第三列写入99
wb.save('test.xls')

目前需要注意的是这个第三方库,暂时不支持保存xlsx格式的Excel文件

经过一番查询,发现XlsxWriter更好更强大。

当然下载方式一样,输入:pip install XlsxWriter

import xlsxwriter
workbook = xlsxwriter.Workbook('test.xlsx')# 创建一个表
worksheet = workbook.add_worksheet()# 添加一个sheet

#需要写入的数据
mylist = (
    ['test1', 1000,0.1],
    ['test2', 2000,0.2],
    ['test3', 3000,0.3],
    ['test4', 5000,0.4],
)

row = 0
col = 0

# 将数据写入单元格
for item, nums,cost in (mylist):
    worksheet.write(row, col,item)
    worksheet.write(row, col + 1, nums)
    worksheet.write(row, col + 2, cost)
    row += 1

#加粗字体
bold = workbook.add_format({'bold': True})
# 写入单元格
worksheet.write(row, 0, 'Total',bold)
worksheet.write(row, 1, '=SUM(B1:B4)') # 使用excel方法求和并写入单元格
worksheet.write(row, 2, '=SUM(C1:C4)') #使用excel方法求和并写入单元格
workbook.close()
更多用法参考http://xlsxwriter.readthedocs.io/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python