#导入包
import xlrd
#设置路径
path='C:\\Users\\jyjh\\Desktop\\datap.xlsx'。
#打开文件
data=xlrd.open_workbook(path)。
#查询工作表
sheets=data.sheets()。
sheets
可以通过函数、索引、名称获得工作表。
sheet_1_by_function=data.sheets()[0]。
sheet_1_by_index=data.sheet_by_index(0)。
sheet_1_by_name=data.sheet_by_name(u'Sheet1')。
可以通过方法获得某一列或者某一行的数值。
sheet_1_by_name.row_values(1)。
sheet_1_by_name.col_values(1)。
通过工作表的属性获得行数和列数。
n_of_rows=sheet_1_by_name.nrows。
n_of_cols=sheet_1_by_name.ncols。
也可以用一个循环来遍历一次文件。
for i in range(n_of_rows):。
print sheet_1_by_name.row_values(i)。
可以通过以下的任意一种方式访问单元格的数值。
cell_A1=sheet_1_by_name.cell(0,0).value。
cell_A1=sheet_1_by_name.row(0)[0].value。
cell_A1=sheet_1_by_name.col(0)[0].value。
最后通过以下的方法对单元格的数值进行修改。
row=0
col=0
#ctype 0:empty,1:string,2:number,3:date,4:boolean,5:error。
cell_type=1
value='Hello,Excel'。
cell_A1=sheet_1_by_name.cell(0,0).value。
format=0
sheet_1_by_name.put_cell(row,col,cell_type,value,format)。
cell_A1=sheet_1_by_name.cell(0,0).value。
Python[1] (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。
Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。
Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。
7月20日,IEEE发布2017年编程语言排行榜:Python高居首位。
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_duplicates('订单','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']=['上海','山东','浙江']。
一、读excel表
读excel要用到xlrd模块,官网安装(http://pypi.python.org/pypi/xlrd)。然后就可以跟着里面的例子稍微试一下就知道怎么用了。大概的流程是这样的:
1、导入模块
复制代码代码如下:
import xlrd
2、打开Excel文件读取数据。
复制代码代码如下:
data = xlrd.open_workbook('excel.xls')。
3、获取一个工作表
① table = data.sheets()[0] #通过索引顺序获取。
② table = data.sheet_by_index(0) #通过索引顺序获取。
③ table = data.sheet_by_name(u'Sheet1')#通过名称获取。
4、获取整行和整列的值(返回数组)
复制代码代码如下:
table.row_values(i)。
table.col_values(i)。
5、获取行数和列数
复制代码代码如下:
table.nrows
table.ncols
6、获取单元格
复制代码代码如下:
table.cell(0,0).value。
table.cell(2,3).value。
就我自己使用的时候觉得还是获取cell最有用,这就相当于是给了你一个二维数组,余下你就可以想怎么干就怎么干了。得益于这个十分好用的库代码很是简洁。但是还是有若干坑的存在导致话了一定时间探索。现在列出来供后人参考吧:
1、首先就是我的统计是根据姓名统计各个表中的信息的,但是调试发现不同的表中各个名字貌似不能够匹配,开始怀疑过编码问题,不过后来发现是因为空格。因为在excel中输入的时候很可能会顺手在一些名字后面加上几个空格或是tab键,这样看起来没什么差别,但是程序处理的时候这就是两个完全不同的串了。我的解决方法是给每个获取的字符串都加上strip()处理一下。效果良好。
2、还是字符串的匹配,在判断某个单元格中的字符串(中文)是否等于我所给出的的时候发现无法匹配,并且各种unicode也不太奏效,百度过一些解决方案,但是都比较复杂或是没用。最后我采用了一个比较变通的方式:直接从excel中获取我想要的值再进行比较,效果是不错就是通用行不太好,个呢不能问题还没解决。
二、写excel表
写excel表要用到xlwt模块,官网下载(http://pypi.python.org/pypi/xlwt)。大致使用流程如下:
1、导入模块
复制代码代码如下:
import xlwt
2、创建workbook(其实就是excel,后来保存一下就行)
复制代码代码如下:
workbook = xlwt.Workbook(encoding = 'ascii')。
3、创建表
复制代码代码如下:
worksheet = workbook.add_sheet('My Worksheet')。
4、往单元格内写入内容
复制代码代码如下:
worksheet.write(0, 0, label = 'Row 0, Column 0 Value')。
5、保存
复制代码代码如下:
workbook.save('Excel_Workbook.xls')。
由于我的需求比较简单,所以这上面没遇到什么问题,唯一的就是建议还是用ascii编码,不然可能会有一些诡异的现象。
当然xlwt功能远远不止这些,他甚至可以设置各种样式之类的。附上一点例子。
复制代码代码如下:
Examples Generating Excel Documents Using Python's xlwt。
Here are some simple examples using Python's xlwt library to dynamically generate Excel documents.。
Please note a useful alternative may be ezodf, which allows you to generate ODS (Open Document Spreadsheet) files for LibreOffice / OpenOffice. You can check them out at:http://packages.python.org/ezodf/index.html。
The Simplest Example。
import xlwt
workbook = xlwt.Workbook(encoding = 'ascii')。
worksheet = workbook.add_sheet('My Worksheet')。
worksheet.write(0, 0, label = 'Row 0, Column 0 Value')。
workbook.save('Excel_Workbook.xls')。
Formatting the Contents of a Cell。
import xlwt
workbook = xlwt.Workbook(encoding = 'ascii')。
worksheet = workbook.add_sheet('My Worksheet')。
font = xlwt.Font() # Create the Font。
font.name = 'Times New Roman'。
font.bold = True。
font.underline = True。
font.italic = True。
style = xlwt.XFStyle() # Create the Style。
style.font = font # Apply the Font to the Style。
worksheet.write(0, 0, label = 'Unformatted value')。
worksheet.write(1, 0, label = 'Formatted value', style) # Apply the Style to the Cell。
workbook.save('Excel_Workbook.xls')。
Attributes of the Font Object。
font.bold = True # May be: True, False。
font.italic = True # May be: True, False。
font.struck_out = True # May be: True, False。
font.underline = xlwt.Font.UNDERLINE_SINGLE # May be: UNDERLINE_NONE, UNDERLINE_SINGLE, UNDERLINE_SINGLE_ACC, UNDERLINE_DOUBLE, UNDERLINE_DOUBLE_ACC。
font.escapement = xlwt.Font.ESCAPEMENT_SUPERSCRIPT # May be: ESCAPEMENT_NONE, ESCAPEMENT_SUPERSCRIPT, ESCAPEMENT_SUBSCRIPT。
font.family = xlwt.Font.FAMILY_ROMAN # May be: FAMILY_NONE, FAMILY_ROMAN, FAMILY_SWISS, FAMILY_MODERN, FAMILY_SCRIPT, FAMILY_DECORATIVE。
font.charset = xlwt.Font.CHARSET_ANSI_LATIN # May be: CHARSET_ANSI_LATIN, CHARSET_SYS_DEFAULT, CHARSET_SYMBOL, CHARSET_APPLE_ROMAN, CHARSET_ANSI_JAP_SHIFT_JIS, CHARSET_ANSI_KOR_HANGUL, CHARSET_ANSI_KOR_JOHAB, CHARSET_ANSI_CHINESE_GBK, CHARSET_ANSI_CHINESE_BIG5, CHARSET_ANSI_GREEK, CHARSET_ANSI_TURKISH, CHARSET_ANSI_VIETNAMESE, CHARSET_ANSI_HEBREW, CHARSET_ANSI_ARABIC, CHARSET_ANSI_BALTIC, CHARSET_ANSI_CYRILLIC, CHARSET_ANSI_THAI, CHARSET_ANSI_LATIN_II, CHARSET_OEM_LATIN_I。
font.colour_index = ?。
font.get_biff_record = ?。
font.height = 0x00C8 # C8 in Hex (in decimal) = 10 points in height.。
font.name = ?
font.outline = ?。
font.shadow = ?。
Setting the Width of a Cell。
import xltw
workbook = xlwt.Workbook()。
worksheet = workbook.add_sheet('My Sheet')。
worksheet.write(0, 0, 'My Cell Contents')。
worksheet.col(0).width = 3333 # 3333 = 1" (one inch).。
workbook.save('Excel_Workbook.xls')。
Entering a Date into a Cell。
import xlwt
import datetime。
workbook = xlwt.Workbook()。
worksheet = workbook.add_sheet('My Sheet')。
style = xlwt.XFStyle()。
style.num_format_str = 'M/D/YY' # Other options: D-MMM-YY, D-MMM, MMM-YY, h:mm, h:mm:ss, h:mm, h:mm:ss, M/D/YY h:mm, mm:ss, [h]:mm:ss, mm:ss.0。
worksheet.write(0, 0, datetime.datetime.now(), style)。
workbook.save('Excel_Workbook.xls')。
Adding a Formula to a Cell。
import xlwt
workbook = xlwt.Workbook()。
worksheet = workbook.add_sheet('My Sheet')。
worksheet.write(0, 0, 5) # Outputs 5。
worksheet.write(0, 1, 2) # Outputs 2。
worksheet.write(1, 0, xlwt.Formula('A1*B1')) # Should output "10" (A1[5] * A2[2])。
worksheet.write(1, 1, xlwt.Formula('SUM(A1,B1)')) # Should output "7" (A1[5] + A2[2])。
workbook.save('Excel_Workbook.xls')。
Adding a Hyperlink to a Cell。
import xlwt
workbook = xlwt.Workbook()。
worksheet = workbook.add_sheet('My Sheet')。
worksheet.write(0, 0, xlwt.Formula('HYPERLINK("http://www.google.com";"Google")')) # Outputs the text "Google" linking to http://www.google.com。
workbook.save('Excel_Workbook.xls')。
Merging Columns and Rows。
import xlwt
workbook = xlwt.Workbook()。
worksheet = workbook.add_sheet('My Sheet')。
worksheet.write_merge(0, 0, 0, 3, 'First Merge') # Merges row 0's columns 0 through 3.。
font = xlwt.Font() # Create Font。
font.bold = True # Set font to Bold。
style = xlwt.XFStyle() # Create Style。
style.font = font # Add Bold Font to Style。
worksheet.write_merge(1, 2, 0, 3, 'Second Merge', style) # Merges row 1 through 2's columns 0 through 3.。
workbook.save('Excel_Workbook.xls')。
Setting the Alignment for the Contents of a Cell。
import xlwt
workbook = xlwt.Workbook()。
worksheet = workbook.add_sheet('My Sheet')。
alignment = xlwt.Alignment() # Create Alignment。
alignment.horz = xlwt.Alignment.HORZ_CENTER # May be: HORZ_GENERAL, HORZ_LEFT, HORZ_CENTER, HORZ_RIGHT, HORZ_FILLED, HORZ_JUSTIFIED, HORZ_CENTER_ACROSS_SEL, HORZ_DISTRIBUTED。
alignment.vert = xlwt.Alignment.VERT_CENTER # May be: VERT_TOP, VERT_CENTER, VERT_BOTTOM, VERT_JUSTIFIED, VERT_DISTRIBUTED。
style = xlwt.XFStyle() # Create Style。
style.alignment = alignment # Add Alignment to Style。
worksheet.write(0, 0, 'Cell Contents', style)。
workbook.save('Excel_Workbook.xls')。
Adding Borders to a Cell。
# Please note: While I was able to find these constants within the source code, on my system (using LibreOffice,) I was only presented with a solid line, varying from thin to thick; no dotted or dashed lines.。
import xlwt
workbook = xlwt.Workbook()。
worksheet = workbook.add_sheet('My Sheet')。
borders = xlwt.Borders() # Create Borders。
borders.left = xlwt.Borders.DASHED # May be: NO_LINE, THIN, MEDIUM, DASHED, DOTTED, THICK, DOUBLE, HAIR, MEDIUM_DASHED, THIN_DASH_DOTTED, MEDIUM_DASH_DOTTED, THIN_DASH_DOT_DOTTED, MEDIUM_DASH_DOT_DOTTED, SLANTED_MEDIUM_DASH_DOTTED, or 0x00 through 0x0D.。
borders.right = xlwt.Borders.DASHED。
borders.top = xlwt.Borders.DASHED。
borders.bottom = xlwt.Borders.DASHED。
borders.left_colour = 0x40。
borders.right_colour = 0x40。
borders.top_colour = 0x40。
borders.bottom_colour = 0x40。
style = xlwt.XFStyle() # Create Style。
style.borders = borders # Add Borders to Style。
worksheet.write(0, 0, 'Cell Contents', style)。
workbook.save('Excel_Workbook.xls')。
Setting the Background Color of a Cell。
import xlwt
workbook = xlwt.Workbook()。
worksheet = workbook.add_sheet('My Sheet')。
pattern = xlwt.Pattern() # Create the Pattern。
pattern.pattern = xlwt.Pattern.SOLID_PATTERN # May be: NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12。
pattern.pattern_fore_colour = 5 # May be: 8 through 63. 0 = Black, 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow, 6 = Magenta, 7 = Cyan, 16 = Maroon, 17 = Dark Green, 18 = Dark Blue, 19 = Dark Yellow , almost brown), 20 = Dark Magenta, 21 = Teal, 22 = Light Gray, 23 = Dark Gray, the list goes on...。
style = xlwt.XFStyle() # Create the Pattern。
style.pattern = pattern # Add Pattern to Style。
worksheet.write(0, 0, 'Cell Contents', style)。
workbook.save('Excel_Workbook.xls')。
TODO: Things Left to Document。
- Panes -- separate views which are always in view。
- Border Colors (documented above, but not taking effect as it should)。
- Border Widths (document above, but not working as expected)。
- Protection
- Row Styles
- Zoom / Manification。
- WS Props?
Source Code for reference available at: https://secure.simplistix.co.uk/svn/xlwt/trunk/xlwt/。
最近由于经常要用到Excel,需要根据Excel表格中的内容对一些apk进行处理,手动处理很麻烦,于是决定写脚本来处理。首先贴出网上找来的读写Excel的脚本。
1.读取Excel(需要安装xlrd):
123456789101112131415161718192021222324。
#-*- coding: utf8 -*-import xlrd fname = "reflect.xls"bk = xlrd.open_workbook(fname)shxrange = range(bk.nsheets)try: sh = bk.sheet_by_name("Sheet1")except: print "no sheet in %s named Sheet1" % fname#获取行数nrows = sh.nrows#获取列数ncols = sh.ncolsprint "nrows %d, ncols %d" % (nrows,ncols)#获取第一行第一列数据cell_value = sh.cell_value(1,1)#print cell_value row_list = []#获取各行数据for i in range(1,nrows): row_data = sh.row_values(i) row_list.append(row_data)。
2.写入Excel(需安装pyExcelerator)
12345678
from pyExcelerator import * w = Workbook() #创建一个工作簿ws = w.add_sheet('Hey, Hades') #创建一个工作表ws.write(0,0,'bit') #在1行1列写入bitws.write(0,1,'huang') #在1行2列写入huangws.write(1,0,'xuan') #在2行1列写入xuanw.save('mini.xls') #保存。
3.再举个自己写的读写Excel的例子。
读取reflect.xls中的某些信息进行处理后写入mini.xls文件中。
1234567891011121314151617181920212223242526272829303132333435363738394041424344。
#-*- coding: utf8 -*-import xlrdfrom pyExcelerator import * w = Workbook()ws = w.add_sheet('Sheet1') fname = "reflect.xls"bk = xlrd.open_workbook(fname)shxrange = range(bk.nsheets)try: sh = bk.sheet_by_name("Sheet1")except: print "no sheet in %s named Sheet1" % fname nrows = sh.nrowsncols = sh.ncolsprint "nrows %d, ncols %d" % (nrows,ncols) cell_value = sh.cell_value(1,1)#print cell_value row_list = []mydata = []for i in range(1,nrows): row_data = sh.row_values(i) pkgdatas = row_data[3].split(',') #pkgdatas.split(',') #获取每个包的前两个字段 for pkgdata in pkgdatas: pkgdata = '.'.join((pkgdata.split('.'))[:2]) mydata.append(pkgdata) #将列表排序 mydata = list(set(mydata)) print mydata #将列表转化为字符串 mydata = ','.join(mydata) #写入数据到每行的第一列 ws.write(i,0,mydata) mydata = [] row_list.append(row_data[3])#print row_list w.save('mini.xls')。
4.现在我需要根据Excel文件中满足特定要求的apk的md5值来从服务器获取相应的apk样本,就需要这样做:
123456789101112131415161718192021222324252627282930313233。
#-*-coding:utf8-*-import xlrdimport osimport shutil fname = "./excelname.xls"bk = xlrd.open_workbook(fname)shxrange = range(bk.nsheets)try: #打开Sheet1工作表 sh = bk.sheet_by_name("Sheet1")except: print "no sheet in %s named Sheet1" % fname#获取行数nrows = sh.nrows#获取列数ncols = sh.ncols#print "nrows %d, ncols %d" % (nrows,ncols)#获取第一行第一列数据cell_value = sh.cell_value(1,1)#print cell_value row_list = []#range(起始行,结束行)for i in range(1,nrows): row_data = sh.row_values(i) if row_data[6] == "HXB": filename = row_data[3]+".apk" #print "%s %s %s" %(i,row_data[3],filename) filepath = r"./1/"+filename print "%s %s %s" %(i,row_data[3],filepath) if os.path.exists(filepath): shutil.copy(filepath, r"./myapk/")。
补充一个使用xlwt3进行Excel文件的写操作。
1234567891011121314151617181920212223242526。
import xlwt3 if __name__ == '__main__': datas = [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h']]#二维数组 file_path = 'D:\\test.xlsx' wb = xlwt3.Workbook() sheet = wb.add_sheet('test')#sheet的名称为test #单元格的格式 style = 'pattern: pattern solid, fore_colour yellow; '#背景颜色为黄色 style += 'font: bold on; '#粗体字 style += 'align: horz centre, vert center; '#居中 header_style = xlwt3.easyxf(style) row_count = len(datas) col_count = len(datas[0]) for row in range(0, row_count): col_count = len(datas[row]) for col in range(0, col_count): if row == 0:#设置表头单元格的格式 sheet.write(row, col, datas[row][col], header_style) else: sheet.write(row, col, datas[row][col]) wb.save(file_path)。
输出的文件内容如下图:
注:以上代码在Python 3.x版本测试通过。
好了,python操作Excel就这么!些了,简单吧。
用python对excel的读写操作,要用到两个库:xlrd和xlwt,首先下载安装这两个库。
1、#读取Excel
import xlrd
data = xlrd.open_workbook(excelFile)。
table = data.sheets()[0]。
nrows = table.nrows #行数。
ncols = table.ncols #列数。
for i in xrange(0,nrows):。
rowValues= table.row_values(i) #某一行数据。
for item in rowValues:。
print item
2、写Excel文件
'''往EXCEl单元格写内容,每次写一行sheet:页签名称;row:行内容列表;rowIndex:行索引;。
isBold:true:粗字段,false:普通字体'''。
def WriteSheetRow(sheet,rowValueList,rowIndex,isBold):。
i = 0
style = xlwt.easyxf('font: bold 1')。
#style = xlwt.easyxf('font: bold 0, color red;')#红色字体。
#style2 = xlwt.easyxf('pattern: pattern solid, fore_colour yellow; font: bold on;') # 设置Excel单元格的背景色为黄色,字体为粗体。
for svalue in rowValueList:。
strValue = unicode(str(svalue),'utf-8')。
if isBold:
sheet.write(rowIndex,i,strValue,style)。
else:
sheet.write(rowIndex,i,strValue)。
i = i + 1
'''写excel文件''' 。
def save_Excel(strFile):。
excelFile = unicode(strFile, "utf8")。
wbk = xlwt.Workbook()。
sheet = wbk.add_sheet('sheet1',cell_overwrite_ok=True)。
headList = ['标题1','标题2','标题3','标题4','总计']。
rowIndex = 0
WriteSheetRow(sheet,headList,rowIndex,True)。
for i in xrange(1,11):。
rowIndex = rowIndex + 1。
valueList = []
for j in xrange(1,5):。
valueList.append(j*i)。
WriteSheetRow(sheet,valueList,rowIndex,False)。
wbk.save(excelFile)。
style2 = xlwt.easyxf('pattern: pattern solid, fore_colour yellow; font: bold on;')。
原文地址:http://www.qianchusai.com/python%E8%8E%B7%E5%8F%96excel%E8%A1%8C%E6%95%B0.html