سؤال

أحاول كتابة بعض التواريخ من جدول بيانات Excel إلى آخر. حاليًا ، أحصل على تمثيل في Excel ليس ما أريده تمامًا: "40299.2501157407"

يمكنني الحصول على تاريخ الطباعة بشكل جيد إلى وحدة التحكم ، ولكن لا يبدو أنه يعمل في الكتابة بشكل صحيح إلى جدول بيانات Excel - يجب أن تكون البيانات نوعًا من التاريخ في Excel ، لا يمكنني الحصول على إصدار نصي منه.

إليك الخط الذي يقرأ التاريخ في:

date_ccr = xldate_as_tuple(sheet_ccr.cell(row_ccr_index, 9).value, book_ccr.datemode)

إليك الخط الذي يكتب التاريخ:

row.set_cell_date(11, datetime(*date_ccr))

لا يوجد أي شيء حتى الآن بين هذين الخطين بخلاف مقارنات قليلة.

أيه أفكار؟

هل كانت مفيدة؟

المحلول

يمكنك كتابة رقم النقطة العائمة مباشرة إلى جدول البيانات وتعيين تنسيق الأرقام للخلية. اضبط التنسيق باستخدام num_format_str من XFStyle كائن عند كتابة القيمة.

https://secure.simplistix.co.uk/svn/xlwt/trunk/xlwt/doc/xlwt.html#xlwt.worksheet.write-method

المثال التالي يكتب التاريخ 01-05-2010. (يتضمن أيضًا وقت 06:00:10 ، ولكن هذا مخفي بالتنسيق المختار في هذا المثال.)

import xlwt

# d can also be a datetime object
d = 40299.2501157407

wb = xlwt.Workbook()
sheet = wb.add_sheet('new')

style = xlwt.XFStyle()
style.num_format_str = 'DD-MM-YYYY'

sheet.write(5, 5, d, style)
wb.save('test_new.xls')

هناك أمثلة على تنسيقات الأرقام (num_formats.py) في مجلد الأمثلة من رمز مصدر XLWT. على جهاز Windows الخاص بي: C: Python26 lib site-packages xlwt أمثلة

يمكنك قراءة حول كيفية تواريخ متاجر Excel (القسم الثالث في هذه الصفحة): https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top