أوبنبيكسل إرجاع القيم الرقمية
سؤال
لدي برنامج نصي بيثون باستخدام أوبنبيكسل لقراءة ملف إكسيل.هذا يستخدم للعمل بشكل جيد ، حتى اكتشفت أن أوبنبيكسل لم يتم تثبيت بشكل صحيح ، مما أعطاني أخطاء تشغيل البرنامج النصي خارج إيد بلدي.بعد إصلاح هذا ، يقوم البرنامج النصي بإرجاع قيم رقمية لا أفهم من أين أتت ، بدلا من القيم الحقيقية.
السيناريو:
wb=load_workbook(r'C:\test.xlsx', use_iterators = True)
ws=wb.get_sheet_by_name('Sheet1')
#Iterate trough all rows
for row in ws.iter_rows(row_offset=1):
for cell in row:
#If the column == A, check if there's a website value
if cell.column == 'A':
try:
print cell.internal_value
self.match = re.match(regex, cell.internal_value)
if self.match:
self.match = 'OK'
except:
pass
تتم إضافة الطباعة في كتلة المحاولة لمعرفة ما يتم إرجاعه بواسطة البرنامج ، وهو ما يلي للسجلات الخمسة الأولى:
0
1
31
49
143
يجب أن يكون:
None
Website
www.coolblue.nl
www.bol.com
www.elektrosky.nl
لماذا يقوم البرنامج النصي بإرجاع هذه القيم الرقمية بدلا من القيم الفعلية?
تحرير: أول 6 صفوف من ملف شمل الخاص بي (الصف الأول فارغ)
Website | Sender | Price | Mark(s) | Payment methods
www.coolblue.nl PostNL Free Thuiswinkel Ideal, Visa, Mastercard
www.bol.com PostNL Free Thuiswinkel Ideal, Visa, Mastercard
www.elektrosky.nl PostNL € 5,00 Webshop keurmerk Ideal, Visa, Mastercard, Amex, PayPal
www.belsimpel.nl PostNL, DPD € 6,95 Thuiswinkel Ideal, Visa, Mastercard
المحلول
المشكلة هي أنك تستخدم .internal_value
.بشكل افتراضي ، يقوم إكسيل بتخزين السلاسل في جدول بحث ويحافظ على الفهرس في الخلية.يجب أن تكون على ما يرام إذا كنت تستخدم فقط .value
لا تنتمي إلى StackOverflow