2017-12-18 3 views
-1

모든 를 사용하여 텍스트 상자의 텍스트를 읽는 방법 openpyxl

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
import re,os,sys,time 
import openpyxl 
from openpyxl import load_workbook 
from openpyxl import Workbook 
from openpyxl.drawing import * 

reload(sys) 
sys.setdefaultencoding('utf8') 

wb = load_workbook(u'2.xlsx') 
sheetnames = wb.get_sheet_names() 
for i in range(0,len(sheetnames)): 
    sheet = wb.get_sheet_by_name(sheetnames[i]) 
    for row in sheet.rows: 
     for cell in row: 
      if cell.value: 
       print cell.value 

내가 XLSX 파일을 압축 해제하려고 ... 내가 셀의 텍스트를 읽을 수 있지만 텍스트 상자가 텍스트를 읽을 수 xl \ 도면 \ 그림 [0-9] .xml 파일에서 텍스트 상자의 내용을 찾으십시오 .. 및 openpyxl.drawing.text는 텍스트 상자를 읽을 수 있습니까? 나는 모른다 ... 어떻게 이걸 할 수 있습니까 ..? 들으 ... 나는 XLSX 파일을 압축 해제해야

답변

0

......

zipFile = zipfile.ZipFile(os.path.join(os.getcwd(), u''+str(flist)+'')) 
    for file in zipFile.namelist(): 
     zipFile.extract(file, r'tmp') 
    zipFile.close() 
    num = 0 
    if os.path.exists(r'tmp/xl/drawings'): 
     xmldir = os.listdir(r'tmp/xl/drawings') 
     for xmlfile in xmldir: 
      xml = os.path.basename(xmlfile) 
      if os.path.splitext(xml)[1] == '.xml': 
       a = open(u'tmp/xl/drawings/'+str(xml)+'').read() 
       b = a.replace('\n','').replace(' ','') 
       c = re.findall(r'<a:p>(.*?)</a:p>',b) 
       for i in c: 
        text = "".join(re.findall(r'(?<=<a:t>).*?(?=</a:t>)',u''+str(i)+'',re.S)).replace(' ','').replace(' ','').replace('\\u6d3b\\u52a8','').replace('&lt;','<').replace('&gt;','>').replace('&amp;','&')