Compare commits

..

10 Commits

19 changed files with 703 additions and 213 deletions

View File

@ -245,12 +245,16 @@ void oox_serialize_aLst(std::wostream & strm, const std::vector<odf_reader::_pro
{
names.push_back(L"adj1");
}
else if (std::wstring::npos != shapeGeomPreset.find(L"heptagon") ||
std::wstring::npos != shapeGeomPreset.find(L"decagon"))
{
values.clear();
}
//else if (std::wstring::npos != shapeGeomPreset.find(L"decagon"))
//{
// names.push_back(L"vf");
//}
//else if (std::wstring::npos != shapeGeomPreset.find(L"heptagon") ||
// std::wstring::npos != shapeGeomPreset.find(L"pentagon"))
//else if (std::wstring::npos != shapeGeomPreset.find(L"pentagon"))
//{
// names.push_back(L"hf");
// names.push_back(L"vf");

View File

@ -218,13 +218,6 @@ void xlsx_xml_worksheet::write_to(std::wostream & strm)
CP_XML_ATTR(L"r:id",impl_->vml_drawingId_);
}
}
if (!impl_->tableParts_.str().empty())
{
CP_XML_NODE(L"tableParts")
{
CP_XML_STREAM() << impl_->tableParts_.str();
}
}
if (!impl_->ole_objects_.str().empty())
{
CP_XML_NODE(L"oleObjects")
@ -239,6 +232,13 @@ void xlsx_xml_worksheet::write_to(std::wostream & strm)
CP_XML_STREAM() << impl_->controls_.str();
}
}
if (!impl_->tableParts_.str().empty())
{
CP_XML_NODE(L"tableParts")
{
CP_XML_STREAM() << impl_->tableParts_.str();
}
}
CP_XML_STREAM() << impl_->picture_background_.str();
//CP_XML_NODE(L"headerFooter){}

View File

@ -590,11 +590,17 @@ void xlsx_pivots_context::Impl::sort_fields()
i--;
}
}
if ((bAddRepeateCol || (count_items_col == 0 && current_.bAxisCol)) && (current_.grand_total == 1 || current_.grand_total == 2))/* && bShowEmptyCol*/ ///* || (bEmptyColCache && current_.grand_total < 0)*/?? Financial Execution (template).ods
bool data_col_repeate = false;
if ((bAddRepeateRow || (count_items_row == 0 && current_.bAxisRow)) && (current_.grand_total == 1 || current_.grand_total == 3 || current_.data_on_row))/* && bShowEmptyRow*/
{
current_.row_fields.push_back(-2);
data_col_repeate = true;
}
if (!data_col_repeate && (bAddRepeateCol || (count_items_col == 0 && current_.bAxisCol)) && (current_.grand_total == 1 || current_.grand_total == 2 || current_.data_fields.size() > 1 ))/* && bShowEmptyCol*/ ///* || (bEmptyColCache && current_.grand_total < 0)*/?? Financial Execution (template).ods
current_.col_fields.push_back(-2);
if ((bAddRepeateRow || (count_items_row == 0 && current_.bAxisRow)) && (current_.grand_total == 1 || current_.grand_total == 3))/* && bShowEmptyRow*/
current_.row_fields.push_back(-2);
}
void xlsx_pivots_context::Impl::serialize_view(std::wostream & strm)
{

View File

@ -81,8 +81,8 @@ void xlsx_data_range::serialize_sort (std::wostream & _Wostream)
std::wstring ref1, ref2;
size_t col_1, row_1, col_2, row_2;
int pos = ref.find(L":");
if (pos >= 0)
size_t pos = ref.find(L":");
if (pos != std::wstring::npos)
{
ref1 = ref.substr(0, pos );
ref2 = ref.substr(pos + 1);

View File

@ -32,6 +32,7 @@
#pragma once
#include <vector>
#include <map>
#include "xlsx_row_spanned.h"
#include "xlsx_merge_cells.h"
@ -53,37 +54,6 @@ typedef _CP_PTR(xlsx_table_state) xlsx_table_state_ptr;
class xlsx_data_range;
typedef _CP_PTR(xlsx_data_range) xlsx_data_range_ptr;
class xlsx_data_range_values;
typedef _CP_PTR(xlsx_data_range_values) xlsx_data_range_values_ptr;
class xlsx_data_range_values
{
public:
xlsx_data_range_values(size_t row, size_t col1, size_t col2) : withHeader(false), filter(false), row_header(row), start_column(col1), end_column(col2)
{
for (size_t i = start_column; i <= end_column; i++)
values.push_back(L"");
}
size_t row_header;
size_t start_column;
size_t end_column;
bool withHeader;
bool filter;
std::vector<std::wstring> values;
void set_value(size_t col, size_t row, const std::wstring& value)
{
while (col - start_column + 1 >= values.size())
values.push_back(L"");
values[col - start_column] = value;
}
bool in_range(size_t col, size_t row) {return (row_header == row && (col >= start_column && col <= end_column));}
};
class xlsx_data_range
{
public:
@ -106,6 +76,46 @@ public:
void serialize_sort (std::wostream & _Wostream);
void serialize_autofilter (std::wostream & _Wostream);
std::vector<std::wstring> header_values;
void set_header(size_t row, size_t col1, size_t col2)
{
row_header = row;
start_column_header = col1;
end_column_header = col2;
for (size_t i = start_column_header; i <= end_column_header; i++)
header_values.push_back(L"");
}
void set_header_value(size_t col, size_t row, const std::wstring& value)
{
while (col - start_column_header + 1 >= header_values.size())
header_values.push_back(L"");
std::map<std::wstring, int>::iterator pFind = map_unique_header_values.find(value);
if (pFind == map_unique_header_values.end())
{
map_unique_header_values.insert(std::make_pair(value, 1));
header_values[col - start_column_header] = value;
}
else
{
pFind->second++;
header_values[col - start_column_header] = value + std::to_wstring(pFind->second);
}
}
bool in_header(size_t col, size_t row)
{
return (row_header == row && (col >= start_column_header && col <= end_column_header));
}
private:
size_t row_header;
size_t start_column_header;
size_t end_column_header;
std::map<std::wstring, int> map_unique_header_values;
};
class xlsx_table_state

View File

@ -63,17 +63,17 @@ xlsx_table_state_ptr xlsx_table_context::state()
bool xlsx_table_context::start_database_range(const std::wstring & name, const std::wstring & ref)
{
formulasconvert::odf2oox_converter convert;
std::wstring odf_ref = convert.convert_named_ref(ref);
std::wstring oox_ref = convert.convert_named_ref(ref);
std::wstring ref1, ref2;
size_t pos = odf_ref.find(L":");
size_t pos = oox_ref.find(L":");
std::wstring xlsx_table_name;
if (pos != std::wstring::npos)
{
ref1 = odf_ref.substr(0, pos );
ref2 = odf_ref.substr(pos + 1);
ref1 = oox_ref.substr(0, pos );
ref2 = oox_ref.substr(pos + 1);
pos = ref1.find(L"!");
if (pos > 0)
@ -91,10 +91,11 @@ bool xlsx_table_context::start_database_range(const std::wstring & name, const s
getCellAddressInv(ref1, col1, row1);
getCellAddressInv(ref2, col2, row2);
xlsx_data_ranges_.push_back(xlsx_data_range_ptr(new xlsx_data_range()));
if (name.find(L"__Anonymous_Sheet_DB__") != std::wstring::npos || col1 == col2)
{
if (/*name.find(L"__Anonymous_Sheet_DB__") != std::wstring::npos ||*/ col1 == col2)
{//check range in pivots
xlsx_data_ranges_.back()->bTablePart = false;
}
xlsx_data_ranges_.back()->name = name;
@ -103,7 +104,7 @@ bool xlsx_table_context::start_database_range(const std::wstring & name, const s
xlsx_data_ranges_.back()->cell_start = std::pair<int, int>(col1, row1);
xlsx_data_ranges_.back()->cell_end = std::pair<int, int>(col2, row2);
xlsx_data_ranges_values_.push_back(xlsx_data_range_values_ptr(new xlsx_data_range_values(row1, col1, col2)));
xlsx_data_ranges_.back()->set_header(row1, col1, col2);
}
if (!xlsx_table_name.empty())
@ -123,14 +124,12 @@ void xlsx_table_context::set_database_header (bool val)
if (xlsx_data_ranges_.empty()) return;
xlsx_data_ranges_.back()->withHeader = val;
xlsx_data_ranges_values_.back()->withHeader = val;
}
void xlsx_table_context::set_database_filter (bool val)
{
if (xlsx_data_ranges_.empty()) return;
xlsx_data_ranges_.back()->filter = val;
xlsx_data_ranges_values_.back()->filter = val;
}
void xlsx_table_context::end_database_range()
{
@ -138,23 +137,55 @@ void xlsx_table_context::end_database_range()
void xlsx_table_context::set_database_range_value(int index, const std::wstring& value)
{
if (index < 0 || index > xlsx_data_ranges_.size()) return;
size_t col = state()->current_column();
size_t row = state()->current_row();
xlsx_data_ranges_values_[index]->set_value(col, row, value);
xlsx_data_ranges_[index]->set_header_value(col, row, value);
}
void xlsx_table_context::check_database_range_intersection(const std::wstring& table_name, const std::wstring& ref)
{
std::wstring ref1, ref2;
size_t col_1, row_1, col_2, row_2;
size_t pos = ref.find(L":");
if (pos != std::wstring::npos)
{
ref1 = ref.substr(0, pos );
ref2 = ref.substr(pos + 1);
}
getCellAddressInv(ref1, col_1, row_1);
getCellAddressInv(ref2, col_2, row_2);
for (size_t i = 0; i < xlsx_data_ranges_.size(); i++)
{
if (xlsx_data_ranges_[i]->table_name != table_name) continue;
//if ( xlsx_data_ranges_[i]->cell_start.second < row_2 || xlsx_data_ranges_[i]->cell_end.second > row_1
// || xlsx_data_ranges_[i]->cell_end.first < col_1 || xlsx_data_ranges_[i]->cell_start.first > col_2 )
if (((col_1 <= xlsx_data_ranges_[i]->cell_start.first && xlsx_data_ranges_[i]->cell_start.first <= col_2) ||
(xlsx_data_ranges_[i]->cell_start.first <= col_1 && col_1 <= xlsx_data_ranges_[i]->cell_end.first))
&&
(( row_1 <= xlsx_data_ranges_[i]->cell_start.second && xlsx_data_ranges_[i]->cell_start.second <= row_2) ||
(xlsx_data_ranges_[i]->cell_start.second <= row_1 && row_1 <= xlsx_data_ranges_[i]->cell_end.second )))
{
xlsx_data_ranges_[i]->bTablePart = false;
}
}
}
int xlsx_table_context::in_database_range()
{
int col = state()->current_column();
int row = state()->current_row();
for (size_t i = 0; i < xlsx_data_ranges_values_.size(); i++)
for (size_t i = 0; i < xlsx_data_ranges_.size(); i++)
{
if (xlsx_data_ranges_[i]->table_name != state()->get_table_name()) continue;
if (/*(xlsx_data_ranges_values_[i]->withHeader || xlsx_data_ranges_values_[i]->filter)&& */
xlsx_data_ranges_values_[i]->in_range(col, row)) //header row only
xlsx_data_ranges_[i]->in_header(col, row))
{
return (int)i;
}
@ -350,7 +381,7 @@ void xlsx_table_context::serialize_tableParts(std::wostream & _Wostream, rels &
{
CP_XML_NODE(L"tableColumn")
{
std::wstring column_name = xlsx_data_ranges_values_[it->second]->values[id];
std::wstring column_name = xlsx_data_ranges_[it->second]->header_values[id];
if (column_name.empty())
{
column_name = L"Column_" + std::to_wstring(id + 1);

View File

@ -116,19 +116,19 @@ public:
void set_database_orientation (bool val);
void set_database_header (bool val);
void set_database_filter (bool val);
void add_database_sort (int field_number, int order);
void add_database_sort (int field_number, int order);
void end_database_range();
int in_database_range();
void set_database_range_value(int index, const std::wstring& value);
void check_database_range_intersection(const std::wstring& table_name, const std::wstring& ref);
private:
xlsx_conversion_context *xlsx_conversion_context_;
xlsx_text_context &xlsx_text_context_;
std::vector<xlsx_table_state_ptr> xlsx_table_states_;
std::vector<xlsx_data_range_ptr> xlsx_data_ranges_;
std::vector<xlsx_data_range_values_ptr> xlsx_data_ranges_values_;
std::multimap<std::wstring, int> xlsx_data_ranges_map_;

View File

@ -106,6 +106,8 @@ void table_data_pilot_table::xlsx_convert(oox::xlsx_conversion_context & Context
std::wstring ref = formulas_converter.convert_named_ref(*table_target_range_address_, false);
sheet_name = formulas_converter.get_table_name();
Context.get_table_context().check_database_range_intersection(sheet_name, ref);
Context.get_pivots_context().set_view_target_range(ref);
Context.get_pivots_context().set_view_target_table_name(sheet_name);
}

View File

@ -37,7 +37,14 @@ mkdir "build"
fi
cef_binary=cef_binary
cef_arch=$cef_binary.7z
cef_url=http://d2ettrnqo7v976.cloudfront.net/cef/3163/$platform$arch/$cef_arch
cef_version="3163"
if [[ "$platform" == *"linux"* ]]
then
cef_version="3202"
fi
cef_url=http://d2ettrnqo7v976.cloudfront.net/cef/$cef_version/$platform$arch/$cef_arch
if [[ "$platform" == *"linux"* ]]
then

View File

@ -1125,6 +1125,12 @@ namespace OOX
et_x_HeaderFooterElementWorksheet,
et_x_Break,
et_x_RowColBreaks,
et_x_SheetProtection,
et_x_DataValidations,
et_x_DataValidation,
et_x_DataConsolidate,
et_x_DataRefs,
et_x_DataRef,
et_x_SparklineGroups,
et_x_SparklineGroup,

View File

@ -157,6 +157,12 @@ namespace OOX
m_oRowBreaks = oReader;
else if (_T("colBreaks") == sName)
m_oColBreaks = oReader;
else if (_T("sheetProtection") == sName)
m_oSheetProtection = oReader;
else if (_T("dataValidations") == sName)
m_oDataValidations = oReader;
else if (_T("dataConsolidate") == sName)
m_oDataConsolidate = oReader;
}
}
if(m_oLegacyDrawing.IsInit() && m_oLegacyDrawing->m_oId.IsInit())
@ -393,10 +399,16 @@ namespace OOX
m_oPicture->toXML(sXml);
if(m_oOleObjects.IsInit())
m_oOleObjects->toXML(sXml);
if (m_oControls.IsInit())
if(m_oControls.IsInit())
m_oControls->toXML(sXml);
if(m_oSheetProtection.IsInit())
m_oSheetProtection->toXML(sXml);
if(m_oDataValidations.IsInit())
m_oDataValidations->toXML(sXml);
if(m_oTableParts.IsInit())
m_oTableParts->toXML(sXml);
if(m_oDataConsolidate.IsInit())
m_oDataConsolidate->toXML(sXml);
if(m_oExtLst.IsInit())
{
sXml.WriteString(m_oExtLst->toXMLWithNS(_T("")));

View File

@ -59,17 +59,12 @@ namespace OOX
class CLegacyDrawingWorksheet;
//необработанные child:
//<cellWatches>
//<colBreaks>
//<customProperties>
//<dataConsolidate>
//<dataValidations>
//<extLst>
//<phoneticPr>
//<protectedRanges>
//<rowBreaks>
//<scenarios>
//<sheetCalcPr>
//<sheetProtection>
//<smartTags>
//<sortState>
//<webPublishItems>
@ -140,6 +135,9 @@ namespace OOX
nullable<OOX::Spreadsheet::CPictureWorksheet> m_oPicture;
nullable<OOX::Spreadsheet::CRowColBreaks> m_oRowBreaks;
nullable<OOX::Spreadsheet::CRowColBreaks> m_oColBreaks;
nullable<OOX::Spreadsheet::CSheetProtection> m_oSheetProtection;
nullable<OOX::Spreadsheet::CDataValidations> m_oDataValidations;
nullable<OOX::Spreadsheet::CDataConsolidate> m_oDataConsolidate;
nullable<OOX::Drawing::COfficeArtExtensionList> m_oExtLst;

View File

@ -88,12 +88,12 @@ namespace OOX
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("left"), m_oLeft)
WritingElement_ReadAttributes_Read_if ( oReader, _T("top"), m_oTop)
WritingElement_ReadAttributes_Read_if ( oReader, _T("right"), m_oRight)
WritingElement_ReadAttributes_Read_if ( oReader, _T("bottom"), m_oBottom)
WritingElement_ReadAttributes_Read_if ( oReader, _T("header"), m_oHeader)
WritingElement_ReadAttributes_Read_if ( oReader, _T("footer"), m_oFooter)
WritingElement_ReadAttributes_Read_if ( oReader, _T("left"), m_oLeft)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("top"), m_oTop)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("right"), m_oRight)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("bottom"), m_oBottom)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("header"), m_oHeader)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("footer"), m_oFooter)
WritingElement_ReadAttributes_End( oReader )
}
@ -157,12 +157,12 @@ namespace OOX
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("orientation"), m_oOrientation)
WritingElement_ReadAttributes_Read_if ( oReader, _T("paperSize"), m_oPaperSize)
WritingElement_ReadAttributes_Read_if ( oReader, _T("paperUnits"), m_oPaperUnits)
WritingElement_ReadAttributes_Read_if ( oReader, _T("paperWidth"), m_oPaperWidth)
WritingElement_ReadAttributes_Read_if ( oReader, _T("paperHeight"), m_oPaperHeight)
WritingElement_ReadAttributes_Read_if ( oReader, _T("r:id"), m_oRId)
WritingElement_ReadAttributes_Read_if ( oReader, _T("orientation"), m_oOrientation)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("paperSize"), m_oPaperSize)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("paperUnits"), m_oPaperUnits)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("paperWidth"), m_oPaperWidth)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("paperHeight"), m_oPaperHeight)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("r:id"), m_oRId)
WritingElement_ReadAttributes_End( oReader )
}
nullable<SimpleTypes::CRelationshipId> m_oRId;
@ -218,11 +218,11 @@ namespace OOX
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("gridLines"), m_oGridLines)
WritingElement_ReadAttributes_Read_if ( oReader, _T("gridLinesSet"), m_oGridLinesSet)
WritingElement_ReadAttributes_Read_if ( oReader, _T("headings"), m_oHeadings)
WritingElement_ReadAttributes_Read_if ( oReader, _T("horizontalCentered"), m_oHorizontalCentered)
WritingElement_ReadAttributes_Read_if ( oReader, _T("verticalCentered"), m_oVerticalCentered)
WritingElement_ReadAttributes_Read_if ( oReader, _T("gridLines"), m_oGridLines)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("gridLinesSet"), m_oGridLinesSet)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("headings"), m_oHeadings)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("horizontalCentered"), m_oHorizontalCentered)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("verticalCentered"), m_oVerticalCentered)
WritingElement_ReadAttributes_End( oReader )
}
@ -271,7 +271,7 @@ namespace OOX
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("ref"), m_oRef)
WritingElement_ReadAttributes_ReadSingle( oReader, _T("ref"), m_oRef)
WritingElement_ReadAttributes_End( oReader )
}
@ -328,15 +328,15 @@ namespace OOX
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("baseColWidth"), m_oBaseColWidth) // ToDo Excel не воспринимает значения не uint (мы приводим к uint)
WritingElement_ReadAttributes_Read_if ( oReader, _T("customHeight"), m_oCustomHeight )
WritingElement_ReadAttributes_Read_if ( oReader, _T("defaultColWidth"), m_oDefaultColWidth )
WritingElement_ReadAttributes_Read_if ( oReader, _T("defaultRowHeight"), m_oDefaultRowHeight )
WritingElement_ReadAttributes_Read_if ( oReader, _T("outlineLevelCol"), m_oOutlineLevelCol )
WritingElement_ReadAttributes_Read_if ( oReader, _T("outlineLevelRow"), m_oOutlineLevelRow )
WritingElement_ReadAttributes_Read_if ( oReader, _T("thickBottom"), m_oThickBottom )
WritingElement_ReadAttributes_Read_if ( oReader, _T("thickTop"), m_oThickTop )
WritingElement_ReadAttributes_Read_if ( oReader, _T("zeroHeight"), m_oZeroHeight )
WritingElement_ReadAttributes_Read_if ( oReader, _T("baseColWidth"), m_oBaseColWidth) // ToDo Excel не воспринимает значения не uint (мы приводим к uint)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("customHeight"), m_oCustomHeight )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("defaultColWidth"), m_oDefaultColWidth )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("defaultRowHeight"), m_oDefaultRowHeight )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("outlineLevelCol"), m_oOutlineLevelCol )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("outlineLevelRow"), m_oOutlineLevelRow )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("thickBottom"), m_oThickBottom )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("thickTop"), m_oThickTop )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("zeroHeight"), m_oZeroHeight )
WritingElement_ReadAttributes_End( oReader )
}
@ -395,11 +395,11 @@ namespace OOX
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("activePane") , m_oActivePane)
WritingElement_ReadAttributes_Read_if ( oReader, _T("state") , m_oState)
WritingElement_ReadAttributes_Read_if ( oReader, _T("topLeftCell") , m_oTopLeftCell)
WritingElement_ReadAttributes_Read_if ( oReader, _T("xSplit") , m_oXSplit)
WritingElement_ReadAttributes_Read_if ( oReader, _T("ySplit") , m_oYSplit)
WritingElement_ReadAttributes_Read_if ( oReader, _T("activePane") , m_oActivePane)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("state") , m_oState)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("topLeftCell") , m_oTopLeftCell)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("xSplit") , m_oXSplit)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("ySplit") , m_oYSplit)
WritingElement_ReadAttributes_End( oReader )
}
@ -454,10 +454,10 @@ namespace OOX
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("activeCell") , m_oActiveCell)
WritingElement_ReadAttributes_Read_if ( oReader, _T("activeCellId") , m_oActiveCellId)
WritingElement_ReadAttributes_Read_if ( oReader, _T("sqref") , m_oSqref)
WritingElement_ReadAttributes_Read_if ( oReader, _T("pane") , m_oPane)
WritingElement_ReadAttributes_Read_if ( oReader, _T("activeCell") , m_oActiveCell)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("activeCellId") , m_oActiveCellId)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("sqref") , m_oSqref)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("pane") , m_oPane)
WritingElement_ReadAttributes_End( oReader )
}
@ -556,25 +556,25 @@ namespace OOX
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("colorId"), m_oColorId)
WritingElement_ReadAttributes_Read_if ( oReader, _T("defaultGridColor"), m_oDefaultGridColor)
WritingElement_ReadAttributes_Read_if ( oReader, _T("rightToLeft"), m_oRightToLeft)
WritingElement_ReadAttributes_Read_if ( oReader, _T("showFormulas"), m_oShowFormulas)
WritingElement_ReadAttributes_Read_if ( oReader, _T("showGridLines"), m_oShowGridLines)
WritingElement_ReadAttributes_Read_if ( oReader, _T("showOutlineSymbols"), m_oShowOutlineSymbols)
WritingElement_ReadAttributes_Read_if ( oReader, _T("showRowColHeaders"), m_oShowRowColHeaders)
WritingElement_ReadAttributes_Read_if ( oReader, _T("showRuler"), m_oShowRuler)
WritingElement_ReadAttributes_Read_if ( oReader, _T("showWhiteSpace"), m_oShowWhiteSpace)
WritingElement_ReadAttributes_Read_if ( oReader, _T("showZeros"), m_oShowZeros)
WritingElement_ReadAttributes_Read_if ( oReader, _T("tabSelected"), m_oTabSelected)
WritingElement_ReadAttributes_Read_if ( oReader, _T("topLeftCell"), m_oTopLeftCell)
WritingElement_ReadAttributes_Read_if ( oReader, _T("view"), m_oView)
WritingElement_ReadAttributes_Read_if ( oReader, _T("windowProtection"), m_oWindowProtection)
WritingElement_ReadAttributes_Read_if ( oReader, _T("workbookViewId"), m_oWorkbookViewId)
WritingElement_ReadAttributes_Read_if ( oReader, _T("zoomScale"), m_oZoomScale)
WritingElement_ReadAttributes_Read_if ( oReader, _T("zoomScaleNormal"), m_oZoomScaleNormal)
WritingElement_ReadAttributes_Read_if ( oReader, _T("zoomScalePageLayoutView"), m_oZoomScalePageLayoutView)
WritingElement_ReadAttributes_Read_if ( oReader, _T("zoomScaleSheetLayoutView"), m_oZoomScaleSheetLayoutView)
WritingElement_ReadAttributes_Read_if ( oReader, _T("colorId"), m_oColorId)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("defaultGridColor"), m_oDefaultGridColor)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("rightToLeft"), m_oRightToLeft)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("showFormulas"), m_oShowFormulas)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("showGridLines"), m_oShowGridLines)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("showOutlineSymbols"), m_oShowOutlineSymbols)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("showRowColHeaders"), m_oShowRowColHeaders)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("showRuler"), m_oShowRuler)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("showWhiteSpace"), m_oShowWhiteSpace)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("showZeros"), m_oShowZeros)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("tabSelected"), m_oTabSelected)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("topLeftCell"), m_oTopLeftCell)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("view"), m_oView)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("windowProtection"), m_oWindowProtection)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("workbookViewId"), m_oWorkbookViewId)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("zoomScale"), m_oZoomScale)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("zoomScaleNormal"), m_oZoomScaleNormal)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("zoomScalePageLayoutView"), m_oZoomScalePageLayoutView)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("zoomScaleSheetLayoutView"), m_oZoomScaleSheetLayoutView)
WritingElement_ReadAttributes_End( oReader )
}
@ -768,7 +768,7 @@ namespace OOX
}
void toXML2(NSStringUtils::CStringBuilder& writer, const std::wstring& sName) const
{
if (m_sText.empty()) return;
if (m_sText.empty()) return;
writer.WriteString(_T("<"));
writer.WriteString(sName);
@ -892,9 +892,9 @@ namespace OOX
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("alignWithMargins"), m_oAlignWithMargins)
WritingElement_ReadAttributes_Read_if ( oReader, _T("differentFirst"), m_oDifferentFirst)
WritingElement_ReadAttributes_Read_if ( oReader, _T("differentOddEven"), m_oDifferentOddEven)
WritingElement_ReadAttributes_Read_if ( oReader, _T("scaleWithDoc"), m_oScaleWithDoc)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("differentFirst"), m_oDifferentFirst)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("differentOddEven"), m_oDifferentOddEven)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("scaleWithDoc"), m_oScaleWithDoc)
WritingElement_ReadAttributes_End( oReader )
}
@ -974,27 +974,25 @@ namespace OOX
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("r:id"), m_oId )
WritingElement_ReadAttributes_Read_if ( oReader, _T("cfe"), m_oCfe )
WritingElement_ReadAttributes_Read_if ( oReader, _T("cff"), m_oCff )
WritingElement_ReadAttributes_Read_if ( oReader, _T("cfo"), m_oCfo )
WritingElement_ReadAttributes_Read_if ( oReader, _T("che"), m_oChe )
WritingElement_ReadAttributes_Read_if ( oReader, _T("chf"), m_oChf )
WritingElement_ReadAttributes_Read_if ( oReader, _T("cho"), m_oCho )
WritingElement_ReadAttributes_Read_if ( oReader, _T("lfe"), m_oLfe )
WritingElement_ReadAttributes_Read_if ( oReader, _T("lff"), m_oLff )
WritingElement_ReadAttributes_Read_if ( oReader, _T("lfo"), m_oLfo )
WritingElement_ReadAttributes_Read_if ( oReader, _T("lhe"), m_oLhe )
WritingElement_ReadAttributes_Read_if ( oReader, _T("lhf"), m_oLhf )
WritingElement_ReadAttributes_Read_if ( oReader, _T("lho"), m_oLho )
WritingElement_ReadAttributes_Read_if ( oReader, _T("rfe"), m_oRfe )
WritingElement_ReadAttributes_Read_if ( oReader, _T("rff"), m_oRff )
WritingElement_ReadAttributes_Read_if ( oReader, _T("rfo"), m_oRfo )
WritingElement_ReadAttributes_Read_if ( oReader, _T("rhe"), m_oRhe )
WritingElement_ReadAttributes_Read_if ( oReader, _T("rhf"), m_oRhf )
WritingElement_ReadAttributes_Read_if ( oReader, _T("rho"), m_oRho )
WritingElement_ReadAttributes_Read_if ( oReader, _T("r:id"), m_oId )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("cfe"), m_oCfe )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("cff"), m_oCff )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("cfo"), m_oCfo )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("che"), m_oChe )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("chf"), m_oChf )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("cho"), m_oCho )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("lfe"), m_oLfe )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("lff"), m_oLff )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("lfo"), m_oLfo )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("lhe"), m_oLhe )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("lhf"), m_oLhf )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("lho"), m_oLho )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("rfe"), m_oRfe )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("rff"), m_oRff )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("rfo"), m_oRfo )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("rhe"), m_oRhe )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("rhf"), m_oRhf )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("rho"), m_oRho )
WritingElement_ReadAttributes_End( oReader )
}
public:
@ -1063,7 +1061,7 @@ namespace OOX
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("r:id"), m_oId )
WritingElement_ReadAttributes_ReadSingle( oReader, _T("r:id"), m_oId )
WritingElement_ReadAttributes_End( oReader )
}
public:
@ -1114,10 +1112,10 @@ namespace OOX
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("id"), m_oId)
WritingElement_ReadAttributes_Read_if ( oReader, _T("man"), m_oMan)
WritingElement_ReadAttributes_Read_if ( oReader, _T("max"), m_oMax)
WritingElement_ReadAttributes_Read_if ( oReader, _T("min"), m_oMin)
WritingElement_ReadAttributes_Read_if ( oReader, _T("pt"), m_oPt)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("man"), m_oMan)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("max"), m_oMax)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("min"), m_oMin)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("pt"), m_oPt)
WritingElement_ReadAttributes_End( oReader )
}
@ -1144,7 +1142,7 @@ namespace OOX
}
virtual std::wstring toXML() const
{
return _T("");
return L"";
}
virtual void toXML(NSStringUtils::CStringBuilder& writer) const
{
@ -1152,11 +1150,11 @@ namespace OOX
}
virtual void toXML2(NSStringUtils::CStringBuilder& writer, const std::wstring& sName) const
{
writer.WriteString(_T("<"));
writer.WriteString(L"<");
writer.WriteString(sName);
WritingStringNullableAttrInt(L"count", m_oCount, m_oCount->GetValue());
WritingStringNullableAttrInt(L"manualBreakCount", m_oManualBreakCount, m_oManualBreakCount->GetValue());
writer.WriteString(_T(">"));
writer.WriteString(L">");
for ( size_t i = 0; i < m_arrItems.size(); ++i)
{
if ( m_arrItems[i] )
@ -1164,9 +1162,9 @@ namespace OOX
m_arrItems[i]->toXML(writer);
}
}
writer.WriteString(_T("</"));
writer.WriteString(L"</");
writer.WriteString(sName);
writer.WriteString(_T(">"));
writer.WriteString(L">");
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
@ -1180,7 +1178,7 @@ namespace OOX
{
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
if ( _T("brk") == sName )
if ( L"brk" == sName )
m_arrItems.push_back( new CBreak( oReader ));
}
}
@ -1193,8 +1191,8 @@ namespace OOX
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("count"), m_oCount)
WritingElement_ReadAttributes_Read_if ( oReader, _T("manualBreakCount"), m_oManualBreakCount)
WritingElement_ReadAttributes_Read_if ( oReader, L"count", m_oCount)
WritingElement_ReadAttributes_Read_else_if ( oReader, L"manualBreakCount", m_oManualBreakCount)
WritingElement_ReadAttributes_End( oReader )
}
@ -1202,6 +1200,448 @@ namespace OOX
nullable<SimpleTypes::CUnsignedDecimalNumber<>> m_oCount;
nullable<SimpleTypes::CUnsignedDecimalNumber<>> m_oManualBreakCount;
};
class CSheetProtection : public WritingElement
{
public:
WritingElement_AdditionConstructors(CSheetProtection)
CSheetProtection()
{
}
virtual ~CSheetProtection()
{
}
virtual void fromXML(XmlUtils::CXmlNode& node)
{
}
virtual std::wstring toXML() const
{
return L"";
}
virtual void toXML(NSStringUtils::CStringBuilder& writer) const
{
writer.WriteString(L"<sheetProtection");
WritingStringNullableAttrString(L"password", m_oPassword, m_oPassword.get());
WritingStringNullableAttrString(L"algorithmName",m_oAlgorithmName, m_oAlgorithmName.get());
WritingStringNullableAttrString(L"hashValue", m_oHashValue, m_oHashValue.get());
WritingStringNullableAttrString(L"saltValue", m_oSaltValue, m_oSaltValue.get());
WritingStringNullableAttrInt(L"spinCount", m_oSpinCount, m_oSpinCount->GetValue());
WritingStringNullableAttrInt(L"autoFilter", m_oAutoFilter, m_oAutoFilter->GetValue());
WritingStringNullableAttrInt(L"content", m_oContent, m_oContent->GetValue());
WritingStringNullableAttrInt(L"deleteColumns", m_oDeleteColumns, m_oDeleteColumns->GetValue());
WritingStringNullableAttrInt(L"deleteRows", m_oDeleteRows, m_oDeleteRows->GetValue());
WritingStringNullableAttrInt(L"formatCells", m_oFormatCells, m_oFormatCells->GetValue());
WritingStringNullableAttrInt(L"formatColumns", m_oFormatColumns, m_oFormatColumns->GetValue());
WritingStringNullableAttrInt(L"formatRows", m_oFormatRows, m_oFormatRows->GetValue());
WritingStringNullableAttrInt(L"insertColumns", m_oInsertColumns, m_oInsertColumns->GetValue());
WritingStringNullableAttrInt(L"insertHyperlinks", m_oInsertHyperlinks, m_oInsertHyperlinks->GetValue());
WritingStringNullableAttrInt(L"insertRows", m_oInsertRows, m_oInsertRows->GetValue());
WritingStringNullableAttrInt(L"objects", m_oObjects, m_oObjects->GetValue());
WritingStringNullableAttrInt(L"pivotTables", m_oPivotTables, m_oPivotTables->GetValue());
WritingStringNullableAttrInt(L"scenarios", m_oScenarios, m_oScenarios->GetValue());
WritingStringNullableAttrInt(L"selectLockedCells", m_oSelectLockedCells, m_oSelectLockedCells->GetValue());
WritingStringNullableAttrInt(L"selectUnlockedCell", m_oSelectUnlockedCell, m_oSelectUnlockedCell->GetValue());
WritingStringNullableAttrInt(L"sheet", m_oSheet, m_oSheet->GetValue());
WritingStringNullableAttrInt(L"sort", m_oSort, m_oSort->GetValue());
writer.WriteString(L"/>");
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
ReadAttributes( oReader );
if ( !oReader.IsEmptyNode() )
oReader.ReadTillEnd();
}
virtual EElementType getType () const
{
return et_x_SheetProtection;
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("password"), m_oPassword)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("algorithmName"), m_oAlgorithmName)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("hashValue"), m_oHashValue)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("saltValue"), m_oSaltValue)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("spinCount"), m_oSpinCount)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("autoFilter"), m_oAutoFilter)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("content"), m_oContent)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("deleteColumns"), m_oDeleteColumns)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("deleteRows"), m_oDeleteRows)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("formatCells"), m_oFormatCells)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("formatColumns"), m_oFormatColumns)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("formatRows"), m_oFormatRows)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("insertColumns"), m_oInsertColumns)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("insertHyperlinks"),m_oInsertHyperlinks)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("insertRows"), m_oInsertRows)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("objects"), m_oObjects)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("pivotTables"), m_oPivotTables)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("scenarios"), m_oScenarios)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("sheet"), m_oSelectLockedCells)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("sheet"), m_oSelectUnlockedCell)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("sheet"), m_oSheet)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("sort"), m_oSort)
WritingElement_ReadAttributes_End( oReader )
}
nullable_string m_oPassword;
nullable_string m_oAlgorithmName;
nullable_string m_oHashValue;
nullable_string m_oSaltValue;
nullable<SimpleTypes::CUnsignedDecimalNumber<>> m_oSpinCount;
nullable<SimpleTypes::COnOff<>> m_oAutoFilter;
nullable<SimpleTypes::COnOff<>> m_oContent;
nullable<SimpleTypes::COnOff<>> m_oDeleteColumns;
nullable<SimpleTypes::COnOff<>> m_oDeleteRows;
nullable<SimpleTypes::COnOff<>> m_oFormatCells;
nullable<SimpleTypes::COnOff<>> m_oFormatColumns;
nullable<SimpleTypes::COnOff<>> m_oFormatRows;
nullable<SimpleTypes::COnOff<>> m_oInsertColumns;
nullable<SimpleTypes::COnOff<>> m_oInsertHyperlinks;
nullable<SimpleTypes::COnOff<>> m_oInsertRows;
nullable<SimpleTypes::COnOff<>> m_oObjects;
nullable<SimpleTypes::COnOff<>> m_oPivotTables;
nullable<SimpleTypes::COnOff<>> m_oScenarios;
nullable<SimpleTypes::COnOff<>> m_oSelectLockedCells;
nullable<SimpleTypes::COnOff<>> m_oSelectUnlockedCell;
nullable<SimpleTypes::COnOff<>> m_oSheet;
nullable<SimpleTypes::COnOff<>> m_oSort;
};
class CDataRef : public WritingElement
{
public:
WritingElement_AdditionConstructors(CDataRef)
CDataRef()
{
}
virtual ~CDataRef()
{
}
virtual void fromXML(XmlUtils::CXmlNode& node)
{
}
virtual std::wstring toXML() const
{
return L"";
}
virtual void toXML(NSStringUtils::CStringBuilder& writer) const
{
writer.WriteString(L"<sheetProtection");
WritingStringAttrString(L"r:id", m_oId->ToString());
WritingStringNullableAttrString(L"name", m_oName, m_oName.get());
WritingStringNullableAttrString(L"ref", m_oRef, m_oRef.get());
WritingStringNullableAttrString(L"sheet", m_oSheet, m_oSheet.get());
writer.WriteString(L"/>");
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
ReadAttributes( oReader );
if ( !oReader.IsEmptyNode() )
oReader.ReadTillEnd();
}
virtual EElementType getType () const
{
return et_x_DataRef;
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("r:id"), m_oId)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("name"), m_oName)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("ref"), m_oRef)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("sheet"), m_oSheet)
WritingElement_ReadAttributes_End( oReader )
}
nullable<SimpleTypes::CRelationshipId> m_oId;
nullable_string m_oName;
nullable_string m_oRef;
nullable_string m_oSheet;
};
class CDataRefs : public WritingElementWithChilds<CDataRef>
{
public:
WritingElement_AdditionConstructors(CDataRefs)
CDataRefs()
{
}
virtual ~CDataRefs()
{
}
virtual void fromXML(XmlUtils::CXmlNode& node)
{
}
virtual std::wstring toXML() const
{
return _T("");
}
virtual void toXML(NSStringUtils::CStringBuilder& writer) const
{
writer.WriteString(L"<dataRefs");
WritingStringNullableAttrInt(L"count", m_oCount, m_oCount->GetValue());
writer.WriteString(L">");
for ( size_t i = 0; i < m_arrItems.size(); ++i)
{
if ( m_arrItems[i] )
{
m_arrItems[i]->toXML(writer);
}
}
writer.WriteString(L"</dataRefs>");
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
ReadAttributes( oReader );
if ( oReader.IsEmptyNode() )
return;
int nCurDepth = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nCurDepth ) )
{
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
if ( L"dataRef" == sName )
m_arrItems.push_back( new CDataRef( oReader ));
}
}
virtual EElementType getType () const
{
return et_x_DataRefs;
}
private:
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_ReadSingle( oReader, L"count", m_oCount)
WritingElement_ReadAttributes_End( oReader )
}
public:
nullable<SimpleTypes::CUnsignedDecimalNumber<>> m_oCount;
};
class CDataConsolidate : public WritingElement
{
public:
WritingElement_AdditionConstructors(CDataConsolidate)
CDataConsolidate()
{
}
virtual ~CDataConsolidate()
{
}
virtual void fromXML(XmlUtils::CXmlNode& node)
{
}
virtual std::wstring toXML() const
{
return L"";
}
virtual void toXML(NSStringUtils::CStringBuilder& writer) const
{
writer.WriteString(L"<dataConsolidate");
WritingStringNullableAttrString(L"function", m_oFunction, m_oFunction.get());
WritingStringNullableAttrInt(L"link", m_oLink, m_oLink->GetValue());
WritingStringNullableAttrInt(L"startLabels", m_oStartLabels, m_oStartLabels->GetValue());
WritingStringNullableAttrInt(L"topLabels", m_oTopLabels, m_oTopLabels->GetValue());
writer.WriteString(L">");
writer.WriteString(L"</dataConsolidate>");
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
ReadAttributes( oReader );
if ( oReader.IsEmptyNode() )
return;
int nCurDepth = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nCurDepth ) )
{
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
if ( L"dataRefs" == sName )
m_oDataRefs = oReader;
}
}
virtual EElementType getType () const
{
return et_x_DataConsolidate;
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("function"), m_oFunction)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("link"), m_oLink)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("startLabels"), m_oStartLabels)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("topLabels"), m_oTopLabels)
WritingElement_ReadAttributes_End( oReader )
}
nullable_string m_oFunction; //ST_DataConsolidateFunction
nullable<SimpleTypes::COnOff<>> m_oLink;
nullable<SimpleTypes::COnOff<>> m_oStartLabels;
nullable<SimpleTypes::COnOff<>> m_oTopLabels;
nullable<CDataRefs> m_oDataRefs;
};
class CDataValidation : public WritingElement
{
public:
WritingElement_AdditionConstructors(CDataValidation)
CDataValidation()
{
}
virtual ~CDataValidation()
{
}
virtual void fromXML(XmlUtils::CXmlNode& node)
{
}
virtual std::wstring toXML() const
{
return L"";
}
virtual void toXML(NSStringUtils::CStringBuilder& writer) const
{
writer.WriteString(L"<dataValidation");
WritingStringNullableAttrInt (L"allowBlank", m_oAllowBlank, m_oAllowBlank->GetValue());
WritingStringNullableAttrString (L"error", m_oError, m_oError.get());
WritingStringNullableAttrString (L"errorStyle", m_oErrorStyle, m_oErrorStyle.get());
WritingStringNullableAttrString (L"errorTitle", m_oErrorTitle, m_oErrorTitle.get());
WritingStringNullableAttrString (L"imeMode", m_oImeMode, m_oImeMode.get());
WritingStringNullableAttrString (L"operator", m_oOperator, m_oOperator.get());
WritingStringNullableAttrString (L"promt", m_oPromt, m_oPromt.get());
WritingStringNullableAttrString (L"promptTitle", m_oPromptTitle, m_oPromptTitle.get());
WritingStringNullableAttrInt (L"showDropDown", m_oShowDropDown, m_oShowDropDown->GetValue());
WritingStringNullableAttrInt (L"showErrorMessage",m_oShowErrorMessage,m_oShowErrorMessage->GetValue());
WritingStringNullableAttrInt (L"showInputMessage",m_oShowInputMessage,m_oShowInputMessage->GetValue());
WritingStringNullableAttrString (L"sqref", m_oSqref, m_oSqref.get());
WritingStringNullableAttrString (L"type", m_oType, m_oType.get());
writer.WriteString(L"/>");
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
ReadAttributes( oReader );
if ( !oReader.IsEmptyNode() )
oReader.ReadTillEnd();
}
virtual EElementType getType () const
{
return et_x_DataValidation;
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("allowBlank"), m_oAllowBlank)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("error"), m_oError)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("errorStyle"), m_oErrorStyle)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("errorTitle"), m_oErrorTitle)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("imeMode"), m_oImeMode)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("operator"), m_oOperator)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("promt"), m_oPromt)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("promptTitle"), m_oPromptTitle)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("showDropDown"), m_oShowDropDown)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("showErrorMessage"),m_oShowErrorMessage)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("showInputMessage"),m_oShowInputMessage)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("sqref"), m_oSqref)
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("type"), m_oType)
WritingElement_ReadAttributes_End( oReader )
}
nullable<SimpleTypes::CUnsignedDecimalNumber<>> m_oSpinCount;
nullable<SimpleTypes::COnOff<>> m_oAllowBlank;
nullable_string m_oError;
nullable_string m_oErrorStyle; //ST_DataValidationErrorStyle
nullable_string m_oErrorTitle;
nullable_string m_oImeMode; //ST_DataValidationImeMode
nullable_string m_oOperator; //ST_DataValidationOperator
nullable_string m_oPromt;
nullable_string m_oPromptTitle;
nullable<SimpleTypes::COnOff<>> m_oShowDropDown;
nullable<SimpleTypes::COnOff<>> m_oShowErrorMessage;
nullable<SimpleTypes::COnOff<>> m_oShowInputMessage;
nullable_string m_oSqref; //ST_Sqref
nullable_string m_oType; //ST_DataValidationType
};
class CDataValidations : public WritingElementWithChilds<CDataValidation>
{
public:
WritingElement_AdditionConstructors(CDataValidations)
CDataValidations()
{
}
virtual ~CDataValidations()
{
}
virtual void fromXML(XmlUtils::CXmlNode& node)
{
}
virtual std::wstring toXML() const
{
return L"";
}
virtual void toXML(NSStringUtils::CStringBuilder& writer) const
{
writer.WriteString(L"<dataValidations");
WritingStringNullableAttrInt(L"count", m_oCount, m_oCount->GetValue());
WritingStringNullableAttrInt(L"disablePrompts", m_oDisablePrompts, m_oDisablePrompts->GetValue());
WritingStringNullableAttrInt(L"xWindow", m_oXWindow, m_oXWindow->GetValue());
WritingStringNullableAttrInt(L"yWindow", m_oYWindow, m_oYWindow->GetValue());
writer.WriteString(L">");
for ( size_t i = 0; i < m_arrItems.size(); ++i)
{
if ( m_arrItems[i] )
{
m_arrItems[i]->toXML(writer);
}
}
writer.WriteString(L"</dataValidations>");
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
ReadAttributes( oReader );
if ( oReader.IsEmptyNode() )
return;
int nCurDepth = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nCurDepth ) )
{
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
if ( L"dataValidation" == sName )
m_arrItems.push_back( new CDataValidation( oReader ));
}
}
virtual EElementType getType () const
{
return et_x_DataValidations;
}
private:
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, L"count", m_oCount)
WritingElement_ReadAttributes_Read_else_if ( oReader, L"disablePrompts",m_oDisablePrompts)
WritingElement_ReadAttributes_Read_else_if ( oReader, L"xWindow", m_oXWindow)
WritingElement_ReadAttributes_Read_else_if ( oReader, L"yWindow", m_oYWindow)
WritingElement_ReadAttributes_End( oReader )
}
public:
nullable<SimpleTypes::CUnsignedDecimalNumber<>> m_oCount;
nullable<SimpleTypes::COnOff<>> m_oDisablePrompts;
nullable<SimpleTypes::CDecimalNumber<>> m_oXWindow;
nullable<SimpleTypes::CDecimalNumber<>> m_oYWindow;
};
} //Spreadsheet
} // namespace OOX

View File

@ -1 +1 @@
2.4.556.0
2.5.556.0

View File

@ -398,9 +398,9 @@ int CHtmlFile::Convert(const std::vector<std::wstring>& arFiles, const std::wstr
const char* nenv[4];
nenv[0] = sLibraryDir.c_str();
nenv[1] = "LD_PRELOAD=./libcef.so";
nenv[2] = "DISPLAY=:0";
nenv[3] = NULL;
nenv[1] = "DISPLAY=:0";
nenv[2] = NULL;
nenv[3] = NULL;
execve(sProgramm.c_str(),
(char * const *)nargs,
@ -419,9 +419,8 @@ int CHtmlFile::Convert(const std::vector<std::wstring>& arFiles, const std::wstr
const char* nenv[4];
nenv[0] = sLibraryDir.c_str();
nenv[1] = "LD_PRELOAD=./libcef.so";
nenv[2] = NULL;//"DISPLAY=:99";
nenv[3] = NULL;
nenv[1] = NULL;//"DISPLAY=:99";
nenv[2] = NULL;
execve("/usr/bin/xvfb-run", (char * const *)nargs, (char * const *)nenv);
exit(EXIT_SUCCESS);

View File

@ -16,6 +16,11 @@ CONFIG -= debug_and_release debug_and_release_target
DEFINES += HTMLFILE_USE_DYNAMIC_LIBRARY
DEFINES += UNICODECONVERTER_USE_DYNAMIC_LIBRARY
CORE_ROOT_DIR = $$PWD/../..
PWD_ROOT_DIR = $$PWD
include($$CORE_ROOT_DIR/Common/base.pri)
include($$CORE_ROOT_DIR/Common/3dParty/icu/icu.pri)
CONFIG(debug, debug|release) {
DESTDIR = $$PWD/Debug
} else {
@ -25,41 +30,10 @@ CONFIG(debug, debug|release) {
CONFIG += c++11
TEMPLATE = app
############### destination path ###############
DESTINATION_SDK_PATH = $$PWD/../../build/lib
# WINDOWS
win32:contains(QMAKE_TARGET.arch, x86_64):{
CONFIG(debug, debug|release) {
DESTINATION_SDK_PATH = $$DESTINATION_SDK_PATH/win_64/DEBUG
} else {
DESTINATION_SDK_PATH = $$DESTINATION_SDK_PATH/win_64
}
}
win32:!contains(QMAKE_TARGET.arch, x86_64):{
CONFIG(debug, debug|release) {
DESTINATION_SDK_PATH = $$DESTINATION_SDK_PATH/win_32/DEBUG
} else {
DESTINATION_SDK_PATH = $$DESTINATION_SDK_PATH/win_32
}
}
linux-g++:contains(QMAKE_HOST.arch, x86_64):{
DESTINATION_SDK_PATH = $$DESTINATION_SDK_PATH/linux_64
}
linux-g++:!contains(QMAKE_HOST.arch, x86_64):{
DESTINATION_SDK_PATH = $$DESTINATION_SDK_PATH/linux_32
}
LIBS += -L$$DESTINATION_SDK_PATH -lHtmlFile
LIBS += -L$$DESTINATION_SDK_PATH -lUnicodeConverter
LIBS += -L$$DESTINATION_SDK_PATH -lgraphics
LIBS += -L$$CORE_BUILDS_LIBRARIES_PATH -lUnicodeConverter -lkernel -lgraphics -lHtmlFile
linux-g++ | linux-g++-64 | linux-g++-32 {
QMAKE_LFLAGS += -Wl,--rpath=./
LIBS += $$PWD/../../build/bin/icu/linux_64/libicuuc.so.55
LIBS += $$PWD/../../build/bin/icu/linux_64/libicudata.so.55
message(linux)
}
@ -67,9 +41,6 @@ win32 {
LIBS += -ladvapi32 \
-luser32 \
-lshell32
LIBS += -L$$PWD/../../build/bin/icu/win_64/ -licudt
LIBS += -L$$PWD/../../build/bin/icu/win_64/ -licuuc
}
SOURCES += main.cpp

View File

@ -11,7 +11,7 @@ apply from: "$rootProject.projectDir/extra-builds/gradle/common.gradle"
// Common native libs path
def TOOLCHAIN_VERSION = 4.9
def NDK_VERSION = "android-ndk-r17c"
def HOST_PLATFORM = getHostName()
def HOST_PLATFORM = getHostNameFull()
def PATH_NDK = "${project.rootDir.path}/${NDK_VERSION}"
def PATH_TOOLCHAIN = "$PATH_NDK/toolchains/\$1/prebuilt/$HOST_PLATFORM/bin"
def PATH_STANDALONE_SCRIPT = "$PATH_NDK/build/tools"
@ -43,7 +43,7 @@ def ICONV_LIBS_PATH = "$project.ext.PATH_TO_NATIVE_LIBS/iconv"
def ICONV_LIBS_INSTALL = "$ICONV_LIBS_PATH/install"
// Icu
def ICU_SRC = "$PATH_3PARTY/icu/" + getDirName("$PATH_3PARTY/icu")
def ICU_SRC = "$PATH_3PARTY/icu/" + findDirName("$PATH_3PARTY/icu", getHostName())
def ICU_BUILD = "$ICU_SRC/build"
def ICU_SRC_ROOT = "$ICU_SRC/icu/source"
def ICU_LIBS_PATH = "$project.ext.PATH_TO_NATIVE_LIBS/icu"

View File

@ -28,7 +28,8 @@ endif()
if (NOT DEFINED ARG_LIBS)
message(FATAL_ERROR "You must set argument \"ARG_LIBS\" with path to 3d-party library...")
elseif (NOT EXISTS ${ARG_LIBS})
message(FATAL_ERROR "3d party libraries path doesn't exist!")
file(MAKE_DIRECTORY ${ARG_LIBS})
message(STATUS "3d party libraries path doesn't exist! Created!")
endif()
# ---------- Libs names ----------

View File

@ -89,13 +89,15 @@ def getBackSlashExt(String str) {
return str.replaceAll("\\\\", "/")
}
def getDirNameExt(String path) {
def findDirNameExt(String path, String name) {
def countFolders = 0
def nameFolder = ''
file(path).listFiles().each { it ->
if (it.isDirectory()) {
nameFolder = it.getName()
++countFolders
if (it.getName().contains(name)) {
nameFolder = it.getName()
++countFolders
}
}
}
@ -144,7 +146,7 @@ ext {
// Extra path
// Args for cmake
project.ext.SRC_CORE = "$rootProject.rootDir/../../../"
project.ext.SRC_CORE = "$rootProject.rootDir/../../.."
project.ext.PATH_TO_NATIVE_BUILDS = getBackSlashExt("$rootProject.projectDir/extra-builds/native")
project.ext.PATH_TO_NATIVE_LIBS = "$project.ext.PATH_TO_NATIVE_BUILDS/libs"
project.ext.PATH_TO_NATIVE_ARCHS = "$project.ext.PATH_TO_NATIVE_BUILDS/libs.tar"
@ -171,7 +173,8 @@ ext {
getPathEnv = this.&getPathEnvOs
isFolderNotEmpty = this.&isFolderNotEmptyCheck
getBackSlash = this.&getBackSlashExt
getDirName = this.&getDirNameExt
getHostName = this.&getHostNameFullExt
findDirName = this.&findDirNameExt
getHostNameFull = this.&getHostNameFullExt
getHostName = this.&getHostNameExt
}