From 234459f37cc115cf3d16dd0966ef1ae6e8fccea1 Mon Sep 17 00:00:00 2001 From: ElenaSubbotina Date: Wed, 25 Apr 2018 12:21:46 +0300 Subject: [PATCH] x2t - fix bug 37579 --- .../DocFormatTest/DocFormatTest.cpp | 10 +++ .../DocFormatTest/DocFormatTest.vcproj | 12 --- ASCOfficeOdfFile/OdfFileTest/OdfFile.sln | 4 +- ASCOfficeOdfFile/OdfFileTest/OdfFileTest.cpp | 8 ++ .../OdfFileTest/OdfFileTest.vcproj | 28 +----- .../OdfFileWTest/OdfFileWTest.cpp | 10 +++ .../OdfFileWTest/OdfFileWTest.sln | 2 +- .../OdfFileWTest/OdfFileWTest.vcproj | 86 +------------------ .../source/Oox2OdfConverter/XlsxConverter.cpp | 7 +- .../Source/XlsxFormat/Workbook/Sheets.h | 6 +- X2tConverter/test/win32Test/X2tTest.vcproj | 60 +++---------- XlsxSerializerCom/Writer/CSVWriter.cpp | 15 ++-- 12 files changed, 58 insertions(+), 190 deletions(-) diff --git a/ASCOfficeDocFile/DocFormatTest/DocFormatTest.cpp b/ASCOfficeDocFile/DocFormatTest/DocFormatTest.cpp index dfbd533561..2590e0cbce 100644 --- a/ASCOfficeDocFile/DocFormatTest/DocFormatTest.cpp +++ b/ASCOfficeDocFile/DocFormatTest/DocFormatTest.cpp @@ -46,6 +46,16 @@ #if defined(_WIN64) #pragma comment(lib, "../../build/bin/icu/win_64/icuuc.lib") #elif defined (_WIN32) + + #if defined(_DEBUG) + #pragma comment(lib, "../../build/lib/win_32/DEBUG/graphics.lib") + #pragma comment(lib, "../../build/lib/win_32/DEBUG/kernel.lib") + #pragma comment(lib, "../../build/lib/win_32/DEBUG/UnicodeConverter.lib") + #else + #pragma comment(lib, "../../build/lib/win_32/graphics.lib") + #pragma comment(lib, "../../build/lib/win_32/kernel.lib") + #pragma comment(lib, "../../build/lib/win_32/UnicodeConverter.lib") + #endif #pragma comment(lib, "../../build/bin/icu/win_32/icuuc.lib") #endif diff --git a/ASCOfficeDocFile/DocFormatTest/DocFormatTest.vcproj b/ASCOfficeDocFile/DocFormatTest/DocFormatTest.vcproj index 37b6190bbb..0e304f8ae2 100644 --- a/ASCOfficeDocFile/DocFormatTest/DocFormatTest.vcproj +++ b/ASCOfficeDocFile/DocFormatTest/DocFormatTest.vcproj @@ -450,22 +450,10 @@ /> - - - - - - diff --git a/ASCOfficeOdfFile/OdfFileTest/OdfFile.sln b/ASCOfficeOdfFile/OdfFileTest/OdfFile.sln index 428d0d18b0..5b1107da83 100644 --- a/ASCOfficeOdfFile/OdfFileTest/OdfFile.sln +++ b/ASCOfficeOdfFile/OdfFileTest/OdfFile.sln @@ -5,8 +5,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml_wrapper", "..\win32\cpx EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfFormatReaderLib", "..\win32\cpodf.vcproj", "{50E20601-4A8D-4AFB-8870-63828D328429}" ProjectSection(ProjectDependencies) = postProject - {94954A67-A853-43B1-A727-6EF2774C5A6A} = {94954A67-A853-43B1-A727-6EF2774C5A6A} + {41BED424-4EAF-4053-8A5F-1E2A387D53D1} = {41BED424-4EAF-4053-8A5F-1E2A387D53D1} {609ED938-3CA8-4BED-B363-25096D4C4812} = {609ED938-3CA8-4BED-B363-25096D4C4812} + {94954A67-A853-43B1-A727-6EF2774C5A6A} = {94954A67-A853-43B1-A727-6EF2774C5A6A} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfCommon", "..\win32\cpcommon.vcproj", "{609ED938-3CA8-4BED-B363-25096D4C4812}" @@ -19,7 +20,6 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfFileReaderTest", "OdfFileTest.vcproj", "{C2882DDD-07E6-4314-AD4B-48F43F38D722}" ProjectSection(ProjectDependencies) = postProject {C27E9A9F-3A17-4482-9C5F-BF15C01E747C} = {C27E9A9F-3A17-4482-9C5F-BF15C01E747C} - {41BED424-4EAF-4053-8A5F-1E2A387D53D1} = {41BED424-4EAF-4053-8A5F-1E2A387D53D1} {50E20601-4A8D-4AFB-8870-63828D328429} = {50E20601-4A8D-4AFB-8870-63828D328429} {94954A67-A853-43B1-A727-6EF2774C5A6A} = {94954A67-A853-43B1-A727-6EF2774C5A6A} EndProjectSection diff --git a/ASCOfficeOdfFile/OdfFileTest/OdfFileTest.cpp b/ASCOfficeOdfFile/OdfFileTest/OdfFileTest.cpp index 0553934a10..258abe76f4 100644 --- a/ASCOfficeOdfFile/OdfFileTest/OdfFileTest.cpp +++ b/ASCOfficeOdfFile/OdfFileTest/OdfFileTest.cpp @@ -44,6 +44,14 @@ #if defined(_WIN64) #pragma comment(lib, "../../build/bin/icu/win_64/icuuc.lib") #elif defined (_WIN32) + + #if defined(_DEBUG) + #pragma comment(lib, "../../build/lib/win_32/DEBUG/graphics.lib") + #pragma comment(lib, "../../build/lib/win_32/DEBUG/kernel.lib") + #else + #pragma comment(lib, "../../build/lib/win_32/graphics.lib") + #pragma comment(lib, "../../build/lib/win_32/kernel.lib") + #endif #pragma comment(lib, "../../build/bin/icu/win_32/icuuc.lib") #endif diff --git a/ASCOfficeOdfFile/OdfFileTest/OdfFileTest.vcproj b/ASCOfficeOdfFile/OdfFileTest/OdfFileTest.vcproj index f86513645d..7f7e4bc08c 100644 --- a/ASCOfficeOdfFile/OdfFileTest/OdfFileTest.vcproj +++ b/ASCOfficeOdfFile/OdfFileTest/OdfFileTest.vcproj @@ -337,10 +337,6 @@ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" > - - @@ -361,27 +357,7 @@ /> - - - - - - - - - - @@ -394,6 +370,10 @@ /> + + diff --git a/ASCOfficeOdfFileW/OdfFileWTest/OdfFileWTest.cpp b/ASCOfficeOdfFileW/OdfFileWTest/OdfFileWTest.cpp index ef5daf9844..7b85864cdc 100644 --- a/ASCOfficeOdfFileW/OdfFileWTest/OdfFileWTest.cpp +++ b/ASCOfficeOdfFileW/OdfFileWTest/OdfFileWTest.cpp @@ -46,6 +46,16 @@ #if defined(_WIN64) #pragma comment(lib, "../../build/bin/icu/win_64/icuuc.lib") #elif defined (_WIN32) + + #if defined(_DEBUG) + #pragma comment(lib, "../../build/lib/win_32/DEBUG/graphics.lib") + #pragma comment(lib, "../../build/lib/win_32/DEBUG/kernel.lib") + #pragma comment(lib, "../../build/lib/win_32/DEBUG/UnicodeConverter.lib") + #else + #pragma comment(lib, "../../build/lib/win_32/graphics.lib") + #pragma comment(lib, "../../build/lib/win_32/kernel.lib") + #pragma comment(lib, "../../build/lib/win_32/UnicodeConverter.lib") + #endif #pragma comment(lib, "../../build/bin/icu/win_32/icuuc.lib") #endif diff --git a/ASCOfficeOdfFileW/OdfFileWTest/OdfFileWTest.sln b/ASCOfficeOdfFileW/OdfFileWTest/OdfFileWTest.sln index 226be571f2..dcb8a42427 100644 --- a/ASCOfficeOdfFileW/OdfFileWTest/OdfFileWTest.sln +++ b/ASCOfficeOdfFileW/OdfFileWTest/OdfFileWTest.sln @@ -8,11 +8,11 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfFileWriterTest", "OdfFileWTest.vcproj", "{FBA8446A-150F-4A10-B4DA-1022048D6473}" ProjectSection(ProjectDependencies) = postProject {609ED938-3CA8-4BED-B363-25096D4C4812} = {609ED938-3CA8-4BED-B363-25096D4C4812} + {A100103A-353E-45E8-A9B8-90B87CC5C0B0} = {A100103A-353E-45E8-A9B8-90B87CC5C0B0} {BEE01B53-244A-44E6-8947-ED9342D9247E} = {BEE01B53-244A-44E6-8947-ED9342D9247E} {E5A67556-44DA-4481-8F87-0A3AEDBD20DD} = {E5A67556-44DA-4481-8F87-0A3AEDBD20DD} {94954A67-A853-43B1-A727-6EF2774C5A6A} = {94954A67-A853-43B1-A727-6EF2774C5A6A} {36636678-AE25-4BE6-9A34-2561D1BCF302} = {36636678-AE25-4BE6-9A34-2561D1BCF302} - {A100103A-353E-45E8-A9B8-90B87CC5C0B0} = {A100103A-353E-45E8-A9B8-90B87CC5C0B0} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocxFormat", "..\..\Common\DocxFormat\Projects\DocxFormat2005.vcproj", "{A100103A-353E-45E8-A9B8-90B87CC5C0B0}" diff --git a/ASCOfficeOdfFileW/OdfFileWTest/OdfFileWTest.vcproj b/ASCOfficeOdfFileW/OdfFileWTest/OdfFileWTest.vcproj index 12e0400ee5..4c8692a732 100644 --- a/ASCOfficeOdfFileW/OdfFileWTest/OdfFileWTest.vcproj +++ b/ASCOfficeOdfFileW/OdfFileWTest/OdfFileWTest.vcproj @@ -67,7 +67,7 @@ Name="VCLinkerTool" AdditionalDependencies=" Rpcrt4.lib" LinkIncremental="2" - IgnoreDefaultLibraryNames="MSVCRTD.lib" + IgnoreDefaultLibraryNames="" GenerateDebugInformation="true" SubSystem="1" TargetMachine="1" @@ -333,38 +333,6 @@ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" > - - - - - - - - - - - - - - - @@ -377,50 +345,6 @@ /> - - - - - - - - - - - - - - - - - - - @@ -490,14 +414,6 @@ - - - - diff --git a/ASCOfficeOdfFileW/source/Oox2OdfConverter/XlsxConverter.cpp b/ASCOfficeOdfFileW/source/Oox2OdfConverter/XlsxConverter.cpp index 2e03dbab3f..29c97cf941 100644 --- a/ASCOfficeOdfFileW/source/Oox2OdfConverter/XlsxConverter.cpp +++ b/ASCOfficeOdfFileW/source/Oox2OdfConverter/XlsxConverter.cpp @@ -1027,11 +1027,10 @@ void XlsxConverter::convert(OOX::Spreadsheet::CWorkbookView *oox_book_views) { int table_id = oox_book_views->m_oActiveTab->GetValue(); - std::map::iterator pFind = Workbook->m_oSheets->mapSheets.find(table_id); - - if (pFind != Workbook->m_oSheets->mapSheets.end()) + if (table_id >= 0 && table_id < Workbook->m_oSheets->m_arrItems.size()) { - ods_context->settings_context()->add_property(L"ActiveTable", L"string", pFind->second->m_oName.get2()); + ods_context->settings_context()->add_property(L"ActiveTable", L"string", + Workbook->m_oSheets->m_arrItems[table_id]->m_oName.get2()); } } if (oox_book_views->m_oShowSheetTabs.IsInit()) diff --git a/Common/DocxFormat/Source/XlsxFormat/Workbook/Sheets.h b/Common/DocxFormat/Source/XlsxFormat/Workbook/Sheets.h index d862f7d7a7..ca9e7af415 100644 --- a/Common/DocxFormat/Source/XlsxFormat/Workbook/Sheets.h +++ b/Common/DocxFormat/Source/XlsxFormat/Workbook/Sheets.h @@ -145,17 +145,15 @@ namespace OOX int nCurDepth = oReader.GetDepth(); - int index = 0; while( oReader.ReadNextSiblingNode( nCurDepth ) ) { std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName()); - if ( _T("sheet") == sName ) + if ( _T("sheet") == sName ) { CSheet* pSheet = new CSheet( oReader ); m_arrItems.push_back( pSheet ); - mapSheets.insert(std::make_pair(index++, pSheet)); } } @@ -170,8 +168,6 @@ namespace OOX void ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { } - public: - std::map mapSheets; }; } //Spreadsheet } // namespace OOX diff --git a/X2tConverter/test/win32Test/X2tTest.vcproj b/X2tConverter/test/win32Test/X2tTest.vcproj index 4020a53d6f..494a119be8 100644 --- a/X2tConverter/test/win32Test/X2tTest.vcproj +++ b/X2tConverter/test/win32Test/X2tTest.vcproj @@ -627,10 +627,6 @@ - - @@ -688,44 +684,20 @@ RelativePath="..\..\..\XlsxSerializerCom\Common\Common.h" > - - - - - - - - - - - - - - + + + + @@ -773,10 +749,6 @@ RelativePath="..\..\src\cextracttools.h" > - - @@ -785,18 +757,6 @@ RelativePath="..\..\..\Common\OfficeFileFormatChecker2.cpp" > - - - - - - diff --git a/XlsxSerializerCom/Writer/CSVWriter.cpp b/XlsxSerializerCom/Writer/CSVWriter.cpp index d7a9c3f58e..c4e81e8441 100644 --- a/XlsxSerializerCom/Writer/CSVWriter.cpp +++ b/XlsxSerializerCom/Writer/CSVWriter.cpp @@ -142,7 +142,7 @@ namespace CSVWriter if ( oXlsx.m_pWorkbook ) { // Get active sheet - if ( oXlsx.m_pWorkbook->m_oBookViews.IsInit() && ! oXlsx.m_pWorkbook->m_oBookViews->m_arrItems.empty()) + if ( oXlsx.m_pWorkbook->m_oBookViews.IsInit() && !oXlsx.m_pWorkbook->m_oBookViews->m_arrItems.empty()) { if ( oXlsx.m_pWorkbook->m_oBookViews->m_arrItems.front()->m_oActiveTab.IsInit()) { @@ -154,16 +154,17 @@ namespace CSVWriter // Get active sheet rId (для конвертации в CSV нужно использовать name, т.к. это наш бинарник из js-скриптов и еще нет rId // А для json-а нужно пользовать rId, т.к. при открытии они используются - if ( oXlsx.m_pWorkbook->m_oSheets.IsInit() && ! oXlsx.m_pWorkbook->m_oSheets->m_arrItems.empty()) + if ( oXlsx.m_pWorkbook->m_oSheets.IsInit() && !oXlsx.m_pWorkbook->m_oSheets->m_arrItems.empty()) { - std::map::iterator pFind = oXlsx.m_pWorkbook->m_oSheets->mapSheets.find(lActiveSheet); - OOX::Spreadsheet::CSheet *pSheet = NULL; - - if (pFind != oXlsx.m_pWorkbook->m_oSheets->mapSheets.end()) - pSheet = pFind->second; + if (lActiveSheet >= 0 && lActiveSheet < oXlsx.m_pWorkbook->m_oSheets->m_arrItems.size()) + { + oXlsx.m_pWorkbook->m_oSheets->m_arrItems[lActiveSheet]; + } else + { pSheet = oXlsx.m_pWorkbook->m_oSheets->m_arrItems.front(); + } sSheetRId = bJSON ? pSheet->m_oRid->GetValue() : pSheet->m_oName.get2(); }