sc/source/filter/inc/sheetdatabuffer.hxx  |    2 ++
 sc/source/filter/oox/sheetdatabuffer.cxx  |   13 +++++++++++++
 sc/source/filter/oox/sheetdatacontext.cxx |    3 +++
 3 files changed, 18 insertions(+)

New commits:
commit dff29fadfe418421f2af9fd4f1dccc8a9b4cd545
Author: Markus Mohrhard <markus.mohrh...@collabora.co.uk>
Date:   Sat Mar 1 16:36:18 2014 +0100

    import date cells from OOXML
    
    Change-Id: Id0b9ec034d559d489ca4ee2d1d6aca1bdf1beb9d

diff --git a/sc/source/filter/inc/sheetdatabuffer.hxx 
b/sc/source/filter/inc/sheetdatabuffer.hxx
index ceb3a80..f84f91c 100644
--- a/sc/source/filter/inc/sheetdatabuffer.hxx
+++ b/sc/source/filter/inc/sheetdatabuffer.hxx
@@ -133,6 +133,8 @@ public:
     void                setErrorCell( const CellModel& rModel, sal_uInt8 
nErrorCode );
     /** Inserts a formula cell into the sheet. */
     void                setFormulaCell( const CellModel& rModel, const 
ApiTokenSequence& rTokens );
+    /** Inserts a ISO 8601 date cell into the sheet. */
+    void                setDateCell( const CellModel& rModel, const OUString& 
rDateString );
 
     /** Inserts the passed token array as array formula. */
     void                createArrayFormula(
diff --git a/sc/source/filter/oox/sheetdatabuffer.cxx 
b/sc/source/filter/oox/sheetdatabuffer.cxx
index b4839b2..668a74e 100644
--- a/sc/source/filter/oox/sheetdatabuffer.cxx
+++ b/sc/source/filter/oox/sheetdatabuffer.cxx
@@ -223,6 +223,19 @@ void SheetDataBuffer::setErrorCell( const CellModel& 
rModel, sal_uInt8 nErrorCod
     setCellFormat( rModel );
 }
 
+void SheetDataBuffer::setDateCell( const CellModel& rModel, const OUString& 
rDateString )
+{
+    ScDocument& rDoc = getScDocument();
+    SvNumberFormatter* pFormatter = rDoc.GetFormatTable();
+
+    double fValue = 0.0;
+    sal_uInt32 nFormatIndex;
+    bool bValid = pFormatter->IsNumberFormat( rDateString, nFormatIndex, 
fValue );
+
+    if(bValid)
+        setValueCell( rModel, fValue );
+}
+
 void SheetDataBuffer::setFormulaCell( const CellModel& rModel, const 
ApiTokenSequence& rTokens )
 {
     mbPendingSharedFmla = false;
diff --git a/sc/source/filter/oox/sheetdatacontext.cxx 
b/sc/source/filter/oox/sheetdatacontext.cxx
index 227c1d9..c22930f 100644
--- a/sc/source/filter/oox/sheetdatacontext.cxx
+++ b/sc/source/filter/oox/sheetdatacontext.cxx
@@ -215,6 +215,9 @@ void SheetDataContext::onEndElement()
                 case XML_s:
                     mrSheetData.setStringCell( maCellData, 
maCellValue.toInt32() );
                 break;
+                case XML_d:
+                    mrSheetData.setDateCell( maCellData, maCellValue );
+                break;
             }
             else if( (maCellData.mnCellType == XML_inlineStr) && 
mxInlineStr.get() )
             {
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to