同事小王今天说他有一个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中去除空行,这个很简单。操作完成。