Eric Gazoni编写了读取/写入openpyxl xlsx文件的详细信息。 请从博客或Python编码器的代码库尝试
虽然派对有点晚,但xlrd目前本机支持xlsx。 我使用pip install xlrd --upgrade从命令提示符(WindowsKey R和cmd )更新为0.6.0 )到0.8.0。 现在读取xlsx没有任何问题。
这是一个非常粗糙的实现,仅使用标准库。
defxlsx(fname ) : importzipfilefromxml.etree.elementtreeimportiterparsez=zipfile.zipfile ) fname ) strings=[ El eliniterparse (z.open (XL/worksheets/sheet1. XML ) ) 3360ifEl.tag.endswith ) ) 3360# 84value=El 4ifEl.attrib.get((t )=) s ) :value=strings(int ) value ) (letter=El.attrib ) ) az22 ww
importopenpyxlaspximportnumpyasnpw=px.load _ workbook (' filename.xlsx ', use _ iterators=true (p=w.get _ sheet _ by _ name (name=' sheet1' ) a=[] for row in p.iter_rows ) ) 3365374; 365306; 6 ) # savematrixaaasxlsxfileww=px.workbook (PP=ww.get _ active _ sheet ) PP.title=' new _ data ' f={ ' } '
其实,导入XLSX文件非常简单。
这些是ZIP文件,包含固定名称的部分XML文档。
可以。 没有多少代码。 打开ZIP归档文件,解析相关XML文档,并处理相关数据位。
这里有提示。 就是http ://slott-software architect.blogspot.com/2010/10/xlsm-and-xlsx-files-finally-reaching .
支持从Excel 2007 .xlsx和. xlsm文件中读取基本数据(open_workbook(…(,formatting_info=False ) ) )现在是alpha 检查以前的开机自检(搜索“excel 2007 xlsx”)。
通过来自论坛的xlrd支持excel
好的,谢谢伟大的子程序!
如果指定了标题行,则已更新行散列,以便可以使用列名称而不是字符作为索引。
readxlsx(mysheet.xlsx ),sheet=1,header=True ) defreadxlsx ) filename,* args (3360 importzipfilefromxml.etree else 3360 sheet=1if ' header ' in args : is header=args [ ' header ' ] else 3360 is header=false rows=[ ] row={ } header } getsharedstringsstrings=[ El.text fore, eliniterparse (z.open (XL/shared strings.XML ) ) ifEl.tag.endswith ) ) value=' ' # openspecifiedworrrd elinited sheet%d.XML(% ) sheet ) )、getvalueorindextosharedstringsifel.() )、getvalu 84 value=El.textifel.) usevalueasanindexifel.attrib.get (t )=) s ) : value=strings [ int ] value ] # splittherow/col信息收集az22 while letter [-1 ].isdigit (3360 letter=letter [ 3360-1 ] # if itit thencreateaheaderhashforthenames # thatcouldbeuseser='': # if there is a header row, use the firstrow ' snamesastherowhashindexifisheader==trueandletterinheader 3360 row [ header [ letter ] ]=value else 360 row=