可以通过pip包管理器来安装Python包,但是pygame包包含C语言代码,需要进行编译。

python如何读取excel数据

上搜索一些教程怎么读写这种专业软件,里面的一些数据通过它的叫声好来读取相关的数据。

python怎么读取excel文件

1.读取Excel(需要安装xlrd):

2.写入Excel(需安装pyExcelerator)

3.再举个自己写的读写Excel的例子

读取reflect.xls中的某些信息进行处理后写入mini.xls文件中。

4.现在我需要根据Excel文件中满足特定要求的apk的md5值来从服务器获取相应的apk样本,就需要这样做:

补充一个使用xlwt3进行Excel文件的写操作。

输出的文件内容如下图:

注:以上代码在Python3.x版本测试通过。

怎么用python读取excel表格的数据

一、读excel表

读excel要用到xlrd模块,官网安装(然后就可以跟着里面的例子稍微试一下就知道怎么用了。大概的流程是这样的:

1、导入模块

复制代码代码如下:

importxlrd

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模块,官网下载(大致使用流程如下:

1、导入模块

复制代码代码如下:

importxlwt

2、创建workbook(其实就是excel,后来保存一下就行)

复制代码代码如下:

workbook=xlwt.Workbook(encoding='ascii')

3、创建表

复制代码代码如下:

worksheet=workbook.add_sheet('MyWorksheet')

4、往单元格内写入内容

复制代码代码如下:

worksheet.write(0,0,label='Row0,')

5、保存

复制代码代码如下:

workbook.save('Excel_Workbook.xls')

由于我的需求比较简单,所以这上面没遇到什么问题,唯一的就是建议还是用ascii编码,不然可能会有一些诡异的现象。

当然xlwt功能远远不止这些,他甚至可以设置各种样式之类的。附上一点例子

复制代码代码如下:

ExamplesGeneratingExcelDocumentsUsingPython'sxlwt

HerearesomesimpleexamplesusingPython'sxlwtlibrarytodynamicallygenerateExceldocuments.

Pleasenoteausefulalternativemaybeezodf,whichallowsyoutogenerateODS(OpenDocumentSpreadsheet)filesforLibreOffice/OpenOffice.Youcancheckthemoutat:

TheSimplestExample

importxlwt

workbook=xlwt.Workbook(encoding='ascii')

worksheet=workbook.add_sheet('MyWorksheet')

worksheet.write(0,0,label='Row0,')

workbook.save('Excel_Workbook.xls')

FormattingtheContentsofaCell

importxlwt

workbook=xlwt.Workbook(encoding='ascii')

worksheet=workbook.add_sheet('MyWorksheet')

font=xlwt.Font()#CreatetheFont

font.name='TimesNewRoman'

font.bold=True

font.underline=True

font.italic=True

style=xlwt.XFStyle()#CreatetheStyle

style.font=font#ApplytheFonttotheStyle

worksheet.write(0,0,label='Unformattedvalue')

worksheet.write(1,0,label='Formattedvalue',style)#ApplytheStyletotheCell

workbook.save('Excel_Workbook.xls')

AttributesoftheFontObject

font.bold=True#Maybe:True,False

font.italic=True#Maybe:True,False

font.struck_out=True#Maybe:True,False

font.underline=_SINGLE#Maybe:UNDERLINE_NONE,UNDERLINE_SINGLE,UNDERLINE_SINGLE_ACC,UNDERLINE_DOUBLE,UNDERLINE_DOUBLE_ACC

font.escapement=_SUPERSCRIPT#Maybe:ESCAPEMENT_NONE,ESCAPEMENT_SUPERSCRIPT,ESCAPEMENT_SUBSCRIPT

font.family=_ROMAN#Maybe:FAMILY_NONE,FAMILY_ROMAN,FAMILY_SWISS,FAMILY_MODERN,FAMILY_SCRIPT,FAMILY_DECORATIVE

font.charset=_ANSI_LATIN#Maybe: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=#(indecimal)=.

font.name=?

font.outline=?

font.shadow=?

SettingtheWidthofaCell

importxltw

workbook=xlwt.Workbook()

worksheet=workbook.add_sheet('MySheet')

worksheet.write(0,0,'MyCellContents')

worksheet.col(0).width=#=1"(oneinch).

workbook.save('Excel_Workbook.xls')

EnteringaDateintoaCell

importxlwt

importdatetime

workbook=xlwt.Workbook()

worksheet=workbook.add_sheet('MySheet')

style=xlwt.XFStyle()

style.num_format_str='M/D/YY'#Otheroptions:D-MMM-YY,D-MMM,MMM-YY,h:mm,h:mm:ss,h:mm,h:mm:ss,M/D/YYh:mm,mm:ss,[h]:mm:ss,mm:ss.0

worksheet.write(0,0,

workbook.save('Excel_Workbook.xls')

AddingaFormulatoaCell

importxlwt

workbook=xlwt.Workbook()

worksheet=workbook.add_sheet('MySheet')

worksheet.write(0,0,5)#Outputs5

worksheet.write(0,1,2)#Outputs2

worksheet.write(1,0,xlwt.Formula('A1*B1'))#Shouldoutput"10"(A1[5]*A2[2])

worksheet.write(1,1,xlwt.Formula('SUM(A1,B1)'))#Shouldoutput"7"(A1[5]+A2[2])

workbook.save('Excel_Workbook.xls')

AddingaHyperlinktoaCell

importxlwt

workbook=xlwt.Workbook()

worksheet=workbook.add_sheet('MySheet')

worksheet.write(0,0,xlwt.Formula('HYPERLINK("";"Google")'))#Outputsthetext"Google"linkingto

workbook.save('Excel_Workbook.xls')

MergingColumnsandRows

importxlwt

workbook=xlwt.Workbook()

worksheet=workbook.add_sheet('MySheet')

worksheet.write_merge(0,0,0,3,'FirstMerge')#Mergesrow0'.

font=xlwt.Font()#CreateFont

font.bold=True#SetfonttoBold

style=xlwt.XFStyle()#CreateStyle

style.font=font#AddBoldFonttoStyle

worksheet.write_merge(1,2,0,3,'SecondMerge',style)#'.

workbook.save('Excel_Workbook.xls')

SettingtheAlignmentfortheContentsofaCell

importxlwt

workbook=xlwt.Workbook()

worksheet=workbook.add_sheet('MySheet')

alignment=xlwt.Alignment()#CreateAlignment

alignment.horz=_CENTER#Maybe:HORZ_GENERAL,HORZ_LEFT,HORZ_CENTER,HORZ_RIGHT,HORZ_FILLED,HORZ_JUSTIFIED,HORZ_CENTER_ACROSS_SEL,HORZ_DISTRIBUTED

alignment.vert=_CENTER#Maybe:VERT_TOP,VERT_CENTER,VERT_BOTTOM,VERT_JUSTIFIED,VERT_DISTRIBUTED

style=xlwt.XFStyle()#CreateStyle

style.alignment=alignment#AddAlignmenttoStyle

worksheet.write(0,0,'CellContents',style)

workbook.save('Excel_Workbook.xls')

AddingBorderstoaCell

#Pleasenote:WhileIwasabletofindtheseconstantswithinthesourcecode,onmysystem(usingLibreOffice,)Iwasonlypresentedwithasolidline,varyingfromthintothick;nodottedordashedlines.

importxlwt

workbook=xlwt.Workbook()

worksheet=workbook.add_sheet('MySheet')

borders=xlwt.Borders()#CreateBorders

borders.left=#Maybe: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,orthrough.

borders.right=

borders.top=

borders.bottom=

borders.left_colour=

borders.right_colour=

borders.top_colour=

borders.bottom_colour=

style=xlwt.XFStyle()#CreateStyle

style.borders=borders#AddBorderstoStyle

worksheet.write(0,0,'CellContents',style)

workbook.save('Excel_Workbook.xls')

SettingtheBackgroundColorofaCell

importxlwt

workbook=xlwt.Workbook()

worksheet=workbook.add_sheet('MySheet')

pattern=xlwt.Pattern()#CreatethePattern

pattern.pattern=_PATTERN#Maybe:NO_PATTERN,SOLID_PATTERN,orthrough

pattern.pattern_fore_colour=5#Maybe:.0=Black,1=White,2=Red,3=Green,4=Blue,5=Yellow,6=Magenta,7=Cyan,16=Maroon,17=DarkGreen,18=DarkBlue,19=DarkYellow,almostbrown),20=DarkMagenta,21=Teal,22=LightGray,23=DarkGray,thelistgoeson...

style=xlwt.XFStyle()#CreatethePattern

style.pattern=pattern#AddPatterntoStyle

worksheet.write(0,0,'CellContents',style)

workbook.save('Excel_Workbook.xls')

TODO:ThingsLefttoDocument

-Panes--separateviewswhicharealwaysinview

-BorderColors(documentedabove,butnottakingeffectasitshould)

-BorderWidths(documentabove,butnotworkingasexpected)

-Protection

-RowStyles

-Zoom/Manification

-WSProps?

SourceCodeforreferenceavailableat: