Convertir les dates saisies au format texte en format date (à appliquer sur le content.xml dans le fichier ODF) :

   1 #!/usr/bin/env python
   2 # -*- coding: utf-8 -*-
   3 import sys
   4 import re
   5 
   6 PAT1 = r'<table:table-cell (?P<attrs>[^>]*)office:value-type="string">(?P<s1>\s*)<text:p>(?P<day>[0-9][0-9])/(?P<month>[0-9][0-9])/(?P<year>[0-9][0-9])</text:p>(?P<s2>\s*)</table:table-cell>'
   7 PAT2 = r'<table:table-cell \g<attrs>office:value-type="date" office:date-value="%(year)s-\g<month>-\g<day>">\g<s1><text:p>\g<day>/\g<month>/\g<year></text:p>\g<s2></table:table-cell>'
   8 
   9 def text2date(matchobj):
  10     year = int(matchobj.group('year'))
  11     if year < 100: year += 1900
  12     if year < 1930: year += 100
  13     return matchobj.expand(PAT2) % {'year': year}
  14 
  15 pattern = re.compile(PAT1, re.MULTILINE)
  16 sys.stdout.write(re.sub(pattern, text2date, sys.stdin.read()))

JeanChristopheAndré/Notes/OpenOffice (dernière édition le 2011-03-15 16:45:15 par JeanChristopheAndré)