汪自强

导航

Python处理Excel表格

同事小王今天说他有一个Excel表格,表格如下,一列是姓名,一列是电话号码,总共有大概2000行数据。

有的姓名占了一行,有的占了两行,还有一些占了三行的。如下图:

 

他问我可不可以全部统一成一行,而且在每一个姓名项的前面加“客人”两个字,

手动操作也可以,但程序员还是喜欢写点代码,我使用Python的两个处理Excel的模块来做这件事。

#安装
pip install xlrd 
pip install xlwt

 

代码如下:

#!/usr/bin/python
# -*- coding: utf-8 -*
import xlrd
import xlwt
#导入读和写两个模块

workbook = xlrd.open_workbook(r'demo.xls')
#以读方式打开“demo.xls”,命名为workbook
print workbook.sheet_names()
SheetRead = workbook.sheet_by_name('Sheet1')
print SheetRead.name,SheetRead.nrows,SheetRead.ncols

RowsNumber=SheetRead.nrows
#将sheet1的行数赋值给RowsNumber

BookToWrite = xlwt.Workbook()
SheetWrite = BookToWrite.add_sheet(u'sheet1')

#使用一个循环,把每一行都加上Client
for i in range(0,RowsNumber):
    Name=SheetRead.cell_value(i,0)
    Tell=SheetRead.cell_value(i,1)
    print Tell
    Name='Client'+Name
    if Name == 'Client':
        Name = ''
    SheetWrite.write(i,0,Name)
    SheetWrite.write(i,1,Tell)

BookToWrite.save('demo1.xls')

输入文件是demo.xls,输出是demo1.xls效果图如下:

 

然后再在Excel中去除空行,这个很简单。操作完成。

 

posted on 2017-01-07 18:26  汪自强  阅读(260)  评论(0编辑  收藏  举报