Commit 19e8fa19 authored by Elen.Subbotina's avatar Elen.Subbotina Committed by Alexander Trofimov

РИСОВАНИЕ в OOX формате НЕ РЕАЛИЗОВАНО !!!!

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@55426 954022d7-b5bf-4e40-9824-e11837661b57
parent 67d45b5e
......@@ -1760,7 +1760,7 @@
>
</File>
<File
RelativePath=".\src\odf\custom_shape_types_convert.h"
RelativePath=".\src\odf\datatypes\custom_shape_types_convert.h"
>
</File>
<File
......
......@@ -449,11 +449,9 @@ std::wstring oox2odf_converter::Impl::convert_formula(const std::wstring& expr)
const std::wstring res = boost::regex_replace(
workstr,
//boost::wregex(L"(?:(?=\\()([^\\}]*?)(?=\\)))|(\".*?\")|('.*?')"),//íàõîäèò îò ïåðâîé ñêîáêè ( äî ïåðâîé ) .. è äàëüøå???
boost::wregex(L"(?:(?=[()])(.*?)(?=[)]))|(\".*?\")|('.*?')"),
&oox2odf_converter::Impl::replace_arguments,
boost::match_default | boost::format_all);
//workstr = replace_arguments(workstr);
return std::wstring(L"of:=") + res;
}
......
#include "precompiled_cpodf.h"
#include "docx_drawing.h"
#include <cpdoccore/xml/simple_xml_writer.h>
#include "../odf/custom_shape_types_convert.h"
#include "custom_shape_types_convert.h"
namespace cpdoccore {
......
......@@ -895,6 +895,12 @@ void common_anim_smil_attlist::apply_from(const common_anim_smil_attlist & Other
//_CP_APPLY_PROP(smil_type_, Other.smil_type_);
// _CP_APPLY_PROP(smil_dur_, Other.smil_dur_);
}
void union_common_draw_attlists::serialize(CP_ATTR_NODE)
{
shape_with_text_and_styles_.serialize(CP_GET_XML_NODE());
position_.serialize(CP_GET_XML_NODE());
rel_size_.serialize(CP_GET_XML_NODE());
}
}
}
......@@ -670,6 +670,8 @@ struct union_common_draw_attlists
common_draw_shape_with_text_and_styles_attlist shape_with_text_and_styles_;
common_draw_position_attlist position_;
common_draw_rel_size_attlist rel_size_;
void serialize(CP_ATTR_NODE);
};
......
......@@ -886,6 +886,22 @@
<Filter
Name="elements"
>
<File
RelativePath=".\OdfFormat\draw_frame.cpp"
>
</File>
<File
RelativePath=".\OdfFormat\draw_frame.h"
>
</File>
<File
RelativePath=".\OdfFormat\draw_shapes.cpp"
>
</File>
<File
RelativePath=".\OdfFormat\draw_shapes.h"
>
</File>
<File
RelativePath=".\OdfFormat\list.cpp"
>
......@@ -982,6 +998,14 @@
<Filter
Name="xml_common"
>
<File
RelativePath=".\OdfFormat\svg_creator.cpp"
>
</File>
<File
RelativePath=".\OdfFormat\svg_creator.h"
>
</File>
<File
RelativePath="..\..\ASCOfficeOdfFile\src\xml\utils.cpp"
>
......
#include "precompiled_cpodf.h"
#include "draw_frame.h"
#include <ostream>
#include <sstream>
#include <string>
#include <boost/foreach.hpp>
#include <boost_string.h>
#include <regex.h>
#include <cpdoccore/xml/xmlchar.h>
#include <cpdoccore/xml/serialize.h>
#include <cpdoccore/xml/attributes.h>
#include "style_graphic_properties.h"
#include "length.h"
#include "borderstyle.h"
#include "odf_conversion_context.h"
namespace cpdoccore {
namespace odf {
using xml::xml_char_wc;
void draw_image_attlist::serialize(CP_ATTR_NODE)
{
CP_XML_ATTR_OPT(L"draw:filter-name", draw_filter_name_);
}
void draw_frame_attlist::serialize(CP_ATTR_NODE)
{
CP_XML_ATTR_OPT(L"draw:copy-of", draw_copy_of_);
}
void draw_chart_attlist::serialize(CP_ATTR_NODE)
{
//CP_XML_ATTR_OPT(L"draw:filter-name", draw_filter_name_);
}
// draw:image
//////////////////////////////////////////////////////////////////////////////////////////////////
const wchar_t * draw_image::ns = L"draw";
const wchar_t * draw_image::name = L"image";
void draw_image::serialize(std::wostream & _Wostream)
{
CP_XML_WRITER(_Wostream)
{
CP_XML_NODE_SIMPLE()
{
draw_image_attlist_.serialize(CP_GET_XML_NODE());
common_xlink_attlist_.serialize(CP_GET_XML_NODE());
if (office_binary_data_)office_binary_data_->serialize(CP_XML_STREAM());
BOOST_FOREACH(const office_element_ptr & elm, content_)
{
elm->serialize(CP_XML_STREAM());
}
}
}
}
void draw_image::create_child_element(const ::std::wstring & Ns, const ::std::wstring & Name)
{
if CP_CHECK_NAME(L"office", L"binary-data")
{
CP_CREATE_ELEMENT(office_binary_data_);
}
else
{
CP_CREATE_ELEMENT(content_);
//CP_NOT_APPLICABLE_ELM();
}
}
void draw_image::add_child_element(office_element_ptr & child_element)
{
ElementType type = child_element->get_type();
if (type == typeOfficeBinaryData)
{
office_binary_data_ = child_element;
}
else
content_.push_back(child_element);
}
// draw:chart
////////////////////////////////////////////////////////////////////////////////////////////////////
const wchar_t * draw_chart::ns = L"draw";
const wchar_t * draw_chart::name = L"chart";
void draw_chart::serialize(std::wostream & _Wostream)
{
CP_XML_WRITER(_Wostream)
{
CP_XML_NODE_SIMPLE()
{
draw_chart_attlist_.serialize(CP_GET_XML_NODE());
common_xlink_attlist_.serialize(CP_GET_XML_NODE());
BOOST_FOREACH(const office_element_ptr & elm, content_)
{
elm->serialize(CP_XML_STREAM());
}
}
}
}
void draw_chart::create_child_element( const ::std::wstring & Ns, const ::std::wstring & Name)
{
CP_CREATE_ELEMENT(content_);
}
void draw_chart::add_child_element(office_element_ptr & child_element)
{
content_.push_back(child_element);
}
// draw:g
//////////////////////////////////////////////////////////////////////////////////////////////////
const wchar_t * draw_g::ns = L"draw";
const wchar_t * draw_g::name = L"g";
void draw_g::serialize(std::wostream & _Wostream)
{
CP_XML_WRITER(_Wostream)
{
CP_XML_NODE_SIMPLE()
{
common_draw_attlists_.serialize(CP_GET_XML_NODE());
BOOST_FOREACH(const office_element_ptr & elm, content_)
{
elm->serialize(CP_XML_STREAM());
}
}
}
}
void draw_g::create_child_element( const ::std::wstring & Ns, const ::std::wstring & Name)
{
CP_CREATE_ELEMENT(content_);
}
void draw_g::add_child_element(office_element_ptr & child_element)
{
content_.push_back(child_element);
}
// draw:frame
//////////////////////////////////////////////////////////////////////////////////////////////////
const wchar_t * draw_frame::ns = L"draw";
const wchar_t * draw_frame::name = L"frame";
void draw_frame::serialize(std::wostream & _Wostream)
{
// idx_in_owner = -1;
CP_XML_WRITER(_Wostream)
{
CP_XML_NODE_SIMPLE()
{
draw_frame_attlist_.serialize(CP_GET_XML_NODE());
common_draw_attlists_.serialize(CP_GET_XML_NODE());
common_presentation_attlist_.serialize(CP_GET_XML_NODE());
if (office_event_listeners_)office_event_listeners_->serialize(CP_XML_STREAM());
BOOST_FOREACH(const office_element_ptr & elm, content_)
{
elm->serialize(CP_XML_STREAM());
}
}
}
}
void draw_frame::create_child_element( const ::std::wstring & Ns, const ::std::wstring & Name)
{
if (CP_CHECK_NAME(L"draw", L"text-box") ||
CP_CHECK_NAME(L"draw", L"image") ||// ..
CP_CHECK_NAME(L"draw", L"object") ||//
CP_CHECK_NAME(L"draw", L"object-ole") ||
CP_CHECK_NAME(L"draw", L"applet") ||
CP_CHECK_NAME(L"draw", L"floating-frame") ||
CP_CHECK_NAME(L"draw", L"plugin") ||
CP_CHECK_NAME(L"table", L"table")
)
{
CP_CREATE_ELEMENT(content_);
}
else if CP_CHECK_NAME(L"office", L"event-listeners")
{
CP_CREATE_ELEMENT(office_event_listeners_);
}
else if CP_CHECK_NAME(L"draw", L"glue-point")
{
CP_CREATE_ELEMENT(draw_glue_point_);
}
else if CP_CHECK_NAME(L"draw", L"image-map")
{
CP_CREATE_ELEMENT(draw_image_map_);
}
else if ( CP_CHECK_NAME(L"draw", L"contour-polygon") ||
CP_CHECK_NAME(L"draw", L"contour-path") )
{
CP_CREATE_ELEMENT(draw_contour_);
}
else
{
CP_NOT_APPLICABLE_ELM();
}
}
void draw_frame::add_child_element(office_element_ptr & child_element)
{
ElementType type = child_element->get_type();
if (type == typeDrawImage || type == typeDrawTextBox || type == typeDrawObject || type == typeDrawObjectOle || type == typeTableTable)
{
content_.push_back(child_element);
}
else if (type == typeOfficeEventListeners)
{
office_event_listeners_ = child_element;
}
else
{
//CP_NOT_APPLICABLE_ELM();
}
}
///////////////////////
void draw_text_box_attlist::serialize(CP_ATTR_NODE)
{
CP_XML_ATTR_OPT(L"draw:chain-next-name", draw_chain_next_name_);
CP_XML_ATTR_OPT(L"draw:corner-radius", draw_corner_radius_);
CP_XML_ATTR_OPT(L"fo:min-width", fo_min_width_);
CP_XML_ATTR_OPT(L"fo:min-height", fo_min_height_);
CP_XML_ATTR_OPT(L"fo:max-width", fo_max_width_);
CP_XML_ATTR_OPT(L"fo:max-height", fo_max_height_);
}
// draw:text-box
//////////////////////////////////////////////////////////////////////////////////////////////////
const wchar_t * draw_text_box::ns = L"draw";
const wchar_t * draw_text_box::name = L"text-box";
void draw_text_box::serialize(std::wostream & _Wostream)
{
CP_XML_WRITER(_Wostream)
{
CP_XML_NODE_SIMPLE()
{
draw_text_box_attlist_.serialize(CP_GET_XML_NODE());
BOOST_FOREACH(const office_element_ptr & elm, content_)
{
elm->serialize(CP_XML_STREAM());
}
}
}
}
void draw_text_box::create_child_element( const ::std::wstring & Ns, const ::std::wstring & Name)
{
CP_CREATE_ELEMENT(content_);
}
void draw_text_box::add_child_element( office_element_ptr & child_element)
{
content_.push_back(child_element);
}
// draw:object
//////////////////////////////////////////////////////////////////////////////////////////////////
const wchar_t * draw_object::ns = L"draw";
const wchar_t * draw_object::name = L"object";
void draw_object::serialize(std::wostream & _Wostream)
{
CP_XML_WRITER(_Wostream)
{
CP_XML_NODE_SIMPLE()
{
//draw_object_attlist_.serialize(CP_GET_XML_NODE());
common_xlink_attlist_.serialize(CP_GET_XML_NODE());
}
}
}
void draw_object::create_child_element( const ::std::wstring & Ns, const ::std::wstring & Name)
{
CP_NOT_APPLICABLE_ELM(); // TODO
}
void draw_object::add_child_element(office_element_ptr & child_element)
{
//CP_NOT_APPLICABLE_ELM();
}
// draw:object
//////////////////////////////////////////////////////////////////////////////////////////////////
const wchar_t * draw_object_ole::ns = L"draw";
const wchar_t * draw_object_ole::name = L"object-ole";
void draw_object_ole::serialize(std::wostream & _Wostream)
{
CP_XML_WRITER(_Wostream)
{
CP_XML_NODE_SIMPLE()
{
CP_XML_ATTR_OPT(L"draw:class-id", draw_class_id_);
common_xlink_attlist_.serialize(CP_GET_XML_NODE());
}
}
}
void draw_object_ole::create_child_element( const ::std::wstring & Ns, const ::std::wstring & Name)
{
CP_NOT_APPLICABLE_ELM();
}
void draw_object_ole::add_child_element(office_element_ptr & child_element)
{
//CP_NOT_APPLICABLE_ELM();
}
}
}
#pragma once
#include <iosfwd>
#include <cpdoccore/CPOptional.h>
#include <cpdoccore/xml/xmlelement.h>
#include <cpdoccore/xml/nodetype.h>
#include "office_elements.h"
#include "office_elements_create.h"
#include "common_attlists.h"
//#include "../docx/xlsxconversioncontext.h"
namespace cpdoccore {
namespace odf {
/// draw-image-attlist
class draw_image_attlist
{
public:
_CP_OPT(std::wstring) draw_filter_name_;
void serialize(CP_ATTR_NODE);
};
//draw-frame-attlist
class draw_frame_attlist
{
public:
_CP_OPT(std::wstring) draw_copy_of_;
void serialize(CP_ATTR_NODE);
};
//draw-chart-attlist
class draw_chart_attlist
{
public:
//_CP_OPT(std::wstring) draw_filter_name_;
void serialize(CP_ATTR_NODE);
};
/////////////////////////////////////////////////////////////////////////////////////////
class draw_image : public office_element_impl<draw_image>
{
public:
static const wchar_t * ns;
static const wchar_t * name;
static const xml::NodeType xml_type = xml::typeElement;
static const ElementType type = typeDrawImage;
CPDOCCORE_DEFINE_VISITABLE();
virtual void create_child_element(const ::std::wstring & Ns, const ::std::wstring & Name);
virtual void add_child_element( office_element_ptr & child_element);
virtual void serialize(std::wostream & _Wostream);
draw_image_attlist draw_image_attlist_;
common_xlink_attlist common_xlink_attlist_;
office_element_ptr office_binary_data_;
office_element_ptr_array content_;
};
CP_REGISTER_OFFICE_ELEMENT2(draw_image);
//////////////////////////////////////////////////////////////////////////////////////////////////////////
// .. -
class draw_chart : public office_element_impl<draw_chart>
{
public:
static const wchar_t * ns;
static const wchar_t * name;
static const xml::NodeType xml_type = xml::typeElement;
static const ElementType type = typeDrawChart;
CPDOCCORE_DEFINE_VISITABLE();
virtual void create_child_element(const ::std::wstring & Ns, const ::std::wstring & Name);
virtual void add_child_element( office_element_ptr & child_element);
virtual void serialize(std::wostream & _Wostream);
draw_chart_attlist draw_chart_attlist_;
common_xlink_attlist common_xlink_attlist_;
//office_element_ptr title_;
office_element_ptr_array content_;
};
CP_REGISTER_OFFICE_ELEMENT2(draw_chart);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
class draw_frame : public office_element_impl<draw_frame>
{
public:
static const wchar_t * ns;
static const wchar_t * name;
static const xml::NodeType xml_type = xml::typeElement;
static const ElementType type = typeDrawFrame;
CPDOCCORE_DEFINE_VISITABLE();
virtual void create_child_element(const ::std::wstring & Ns, const ::std::wstring & Name);
virtual void add_child_element( office_element_ptr & child_element);
virtual void serialize(std::wostream & _Wostream);
int idx_in_owner ;
common_presentation_attlist common_presentation_attlist_;
union_common_draw_attlists common_draw_attlists_;
presentation_shape_attlist presentation_shape_attlist_;
draw_frame_attlist draw_frame_attlist_;
// draw-text-box, draw-image, draw-object, draw-object-ole, draw-applet, draw-floating-frame, draw-plugin
office_element_ptr_array content_;
office_element_ptr office_event_listeners_; // content -
office_element_ptr draw_glue_point_;
office_element_ptr draw_image_map_;
//office_element_ptr draw_chart_map_;
office_element_ptr draw_contour_; // draw-contour-polygon or draw-contour-path
friend class draw_image;
friend class draw_chart;
};
CP_REGISTER_OFFICE_ELEMENT2(draw_frame);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
class draw_g : public office_element_impl<draw_g>
{
public:
static const wchar_t * ns;
static const wchar_t * name;
static const xml::NodeType xml_type = xml::typeElement;
static const ElementType type = typeDrawG;
CPDOCCORE_DEFINE_VISITABLE();
virtual void create_child_element(const ::std::wstring & Ns, const ::std::wstring & Name);
virtual void add_child_element( office_element_ptr & child_element);
virtual void serialize(std::wostream & _Wostream);
union_common_draw_attlists common_draw_attlists_;
office_element_ptr_array content_;
};
CP_REGISTER_OFFICE_ELEMENT2(draw_g);
// draw-text-box-attlist
class draw_text_box_attlist
{
public:
_CP_OPT(std::wstring) draw_chain_next_name_;
_CP_OPT(length) draw_corner_radius_;
_CP_OPT(length_or_percent) fo_min_width_;
_CP_OPT(length_or_percent) fo_min_height_;
_CP_OPT(length_or_percent) fo_max_width_;
_CP_OPT(length_or_percent) fo_max_height_;
void serialize(CP_ATTR_NODE);
};
class draw_text_box : public office_element_impl<draw_text_box>
{
public:
static const wchar_t * ns;
static const wchar_t * name;
static const xml::NodeType xml_type = xml::typeElement;
static const ElementType type = typeDrawTextBox;
CPDOCCORE_DEFINE_VISITABLE();
virtual void create_child_element(const ::std::wstring & Ns, const ::std::wstring & Name);
virtual void add_child_element( office_element_ptr & child_element);
virtual void serialize(std::wostream & _Wostream);
draw_text_box_attlist draw_text_box_attlist_;
office_element_ptr_array content_;
};
CP_REGISTER_OFFICE_ELEMENT2(draw_text_box);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// draw:object
class draw_object : public office_element_impl<draw_object>
{
public:
static const wchar_t * ns;
static const wchar_t * name;
static const xml::NodeType xml_type = xml::typeElement;
static const ElementType type = typeDrawObject;
CPDOCCORE_DEFINE_VISITABLE();
virtual void create_child_element(const ::std::wstring & Ns, const ::std::wstring & Name);
virtual void add_child_element( office_element_ptr & child_element);
virtual void serialize(std::wostream & _Wostream);
common_xlink_attlist common_xlink_attlist_;
};
CP_REGISTER_OFFICE_ELEMENT2(draw_object);
// draw:object-ole
class draw_object_ole : public office_element_impl<draw_object>
{
public:
static const wchar_t * ns;
static const wchar_t * name;
static const xml::NodeType xml_type = xml::typeElement;
static const ElementType type = typeDrawObjectOle;
CPDOCCORE_DEFINE_VISITABLE();
virtual void create_child_element(const ::std::wstring & Ns, const ::std::wstring & Name);
virtual void add_child_element( office_element_ptr & child_element);
virtual void serialize(std::wostream & _Wostream);
common_xlink_attlist common_xlink_attlist_;
_CP_OPT(std::wstring) draw_class_id_;
};
CP_REGISTER_OFFICE_ELEMENT2(draw_object_ole);
}
}
This diff is collapsed.
This diff is collapsed.
#pragma once
#include "precompiled_cpodf.h"
#include "svg_creator.h"
namespace cpdoccore
{
namespace svg_path
{
bool createSvgD(std::vector<_polyline> & Polyline, const std::wstring & rSvgDStatement, bool bWrongPositionAfterZ)
{
return true;
}
bool createPolygon(std::vector<_polyline> & Polyline, const std::wstring & rPolygonStatement, bool bWrongPositionAfterZ)
{
return true;
}
}
}
#pragma once
#include <ostream>
#include <sstream>
#include <string>
#include <vector>
#include <boost/foreach.hpp>
#include <boost_string.h>
#include <regex.h>
#include <cpdoccore/CPOptional.h>
namespace cpdoccore
{
namespace svg_path
{
struct _point
{
_point(double _x,double _y){x=_x; y=_y;}
_CP_OPT(double) x;
_CP_OPT(double) y;
friend void oox_serialize(std::wostream & _Wostream, _point const & val);
};
struct _polyline
{
std::wstring command;
std::vector<_point> points; //
friend void oox_serialize(std::wostream & _Wostream, _polyline const & val);
friend void oox_serialize(std::wostream & _Wostream, std::vector<svg_path::_polyline> & path);
};
//m - 1 point
//c - 3 point
//s - 2 point
//l - 1 point
//z - finish
//h - 0.5 point :)
//v - 0.5 point
//q - 2 point
//t - 1 point
//a - [[[[
bool createSvgD(std::vector<_polyline> & Polyline, const std::wstring & rSvgDStatement, bool bWrongPositionAfterZ);
bool createPolygon(std::vector<_polyline> & Polyline, const std::wstring & rPolygonStatement, bool bWrongPositionAfterZ);
}
}
......@@ -7,7 +7,6 @@
#include <cpdoccore/xml/xmlchar.h>
#include <cpdoccore/xml/attributes.h>
#include <cpdoccore/xml/simple_xml_writer.h>
#include <cpdoccore/odf/odf_document.h>
#include "common_attlists.h"
......
......@@ -10,8 +10,6 @@
#include "paragraph_elements.h"
#include "list.h"
#include <cpdoccore/odf/odf_document.h>
#include "odf_conversion_context.h"
#include "odf_text_context.h"
......
......@@ -133,9 +133,23 @@ void XlsxConverter::convert(OOX::Spreadsheet::CWorksheet *oox_sheet)
if (oox_sheet->m_oMergeCells->m_arrItems[mrg]->m_oRef.IsInit())
ods_context->add_merge_cells(string2std_string(oox_sheet->m_oMergeCells->m_arrItems[mrg]->m_oRef.get()));
}
//
//m_oDrawing
if (oox_sheet->m_oDrawing.IsInit() && oox_sheet->m_oDrawing->m_oId.IsInit())
{
smart_ptr<OOX::File> oFile = oox_sheet->Find(oox_sheet->m_oDrawing->m_oId->GetValue());
if (oFile.IsInit() && OOX::Spreadsheet::FileTypes::Drawings == oFile->type())
{
OOX::Spreadsheet::CDrawing* pDrawing = (OOX::Spreadsheet::CDrawing*)oFile.operator->();
convert(pDrawing);
}
}
//for (long dr =0; oox_sheet->m_oDrawing.IsInit() && dr < oox_sheet->m_oDrawing->m_arrItems.GetSize(); dr++)
//{
// convert(oox_sheet->m_oDrawing->m_arrItems[dr]);
//}
//
//m_mapComments
......@@ -934,4 +948,50 @@ void XlsxConverter::convert(OOX::Spreadsheet::CXfs * xfc_style, int oox_id, bool
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void XlsxConverter::convert(OOX::Spreadsheet::CCellAnchor *oox_anchor)
{
//SimpleTypes::Spreadsheet::CCellAnchorType<> m_oAnchorType;
std::wstring ref_from, ref_to;
int col_from, col_to, row_from, row_to;
//////////////////
if (oox_anchor->m_oFrom.IsInit())
convert(oox_anchor->m_oFrom.GetPointer(),ref_from, col_from, row_from);
if (oox_anchor->m_oTo.IsInit())
convert(oox_anchor->m_oTo.GetPointer(),ref_to,col_to,row_to);
//////////////
if (oox_anchor->m_oPos.IsInit())
{
}
if (oox_anchor->m_oExt.IsInit())
{
}
//
if (oox_anchor->m_oGraphicFrame.IsInit())
{
//m_oChartGraphic
}
if (oox_anchor->m_oXml.IsInit())
{
//m_oXml
}
}
void XlsxConverter::convert(OOX::Spreadsheet::CDrawing *oox_drawing)
{
if (!oox_drawing)return;
for (long dr = 0 ; dr < oox_drawing->m_arrItems.GetSize(); dr++)
{
convert(oox_drawing->m_arrItems[dr]);
}
}
void XlsxConverter::convert(OOX::Spreadsheet::CFromTo* oox_from_to, std::wstring & odf_ref, int & col, int & row)
{
}
} // namespace Docx2Odt
\ No newline at end of file
......@@ -96,6 +96,10 @@ namespace Oox2Odf
void convert(OOX::Spreadsheet::CCellStyle *cell_style, int oox_id);
void convert(OOX::Spreadsheet::CNumFmt *numFmt);
void convert(OOX::Spreadsheet::CCellAnchor *oox_anchor);
void convert(OOX::Spreadsheet::CDrawing *oox_drawing);
void convert_sharing_string(int number);
void convert(OOX::Spreadsheet::CFromTo* oox_from_to, std::wstring & odf_ref, int & col, int & row);
};
}
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment