Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
onlyoffice_core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boris Kocherov
onlyoffice_core
Commits
1d16f4ab
Commit
1d16f4ab
authored
Jun 30, 2017
by
ElenaSubbotina
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
XlsFormat - convert piot cache
parent
118f1c57
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
462 additions
and
87 deletions
+462
-87
ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/TxO.cpp
...fficeXlsFile2/source/XlsFormat/Logic/Biff_records/TxO.cpp
+1
-1
ASCOfficeXlsFile2/source/XlsFormat/Logic/ChartSheetSubstream.cpp
...ceXlsFile2/source/XlsFormat/Logic/ChartSheetSubstream.cpp
+4
-5
ASCOfficeXlsFile2/source/XlsXlsxConverter/XlsConverter.cpp
ASCOfficeXlsFile2/source/XlsXlsxConverter/XlsConverter.cpp
+13
-0
ASCOfficeXlsFile2/source/XlsXlsxConverter/oox_package.cpp
ASCOfficeXlsFile2/source/XlsXlsxConverter/oox_package.cpp
+3
-11
ASCOfficeXlsFile2/source/XlsXlsxConverter/oox_package.h
ASCOfficeXlsFile2/source/XlsXlsxConverter/oox_package.h
+4
-7
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_chart_context.cpp
...ceXlsFile2/source/XlsXlsxConverter/xlsx_chart_context.cpp
+5
-5
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_conversion_context.cpp
...File2/source/XlsXlsxConverter/xlsx_conversion_context.cpp
+81
-40
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_conversion_context.h
...lsFile2/source/XlsXlsxConverter/xlsx_conversion_context.h
+9
-3
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_output_xml.h
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_output_xml.h
+0
-3
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_package.cpp
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_package.cpp
+68
-5
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_package.h
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_package.h
+43
-7
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_pivot_cache_context.cpp
...ile2/source/XlsXlsxConverter/xlsx_pivot_cache_context.cpp
+153
-0
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_pivot_cache_context.h
...sFile2/source/XlsXlsxConverter/xlsx_pivot_cache_context.h
+68
-0
ASCOfficeXlsFile2/source/linux/XlsFormatLib.pro
ASCOfficeXlsFile2/source/linux/XlsFormatLib.pro
+2
-0
ASCOfficeXlsFile2/source/win32/XlsXlsxConverter.vcproj
ASCOfficeXlsFile2/source/win32/XlsXlsxConverter.vcproj
+8
-0
No files found.
ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/TxO.cpp
View file @
1d16f4ab
...
@@ -170,7 +170,7 @@ int TxO::serialize (std::wostream & _stream)
...
@@ -170,7 +170,7 @@ int TxO::serialize (std::wostream & _stream)
CP_XML_WRITER
(
_stream
)
CP_XML_WRITER
(
_stream
)
{
{
for
(
in
t
i
=
0
;
i
<
TxOruns
.
rgTxoRuns
.
size
();
i
++
)
for
(
size_
t
i
=
0
;
i
<
TxOruns
.
rgTxoRuns
.
size
();
i
++
)
{
{
Run
*
run
=
dynamic_cast
<
Run
*>
(
TxOruns
.
rgTxoRuns
[
i
].
get
());
Run
*
run
=
dynamic_cast
<
Run
*>
(
TxOruns
.
rgTxoRuns
[
i
].
get
());
if
(
run
==
NULL
)
continue
;
if
(
run
==
NULL
)
continue
;
...
...
ASCOfficeXlsFile2/source/XlsFormat/Logic/ChartSheetSubstream.cpp
View file @
1d16f4ab
...
@@ -294,7 +294,7 @@ void ChartSheetSubstream::recalc(CHARTFORMATS* charts)
...
@@ -294,7 +294,7 @@ void ChartSheetSubstream::recalc(CHARTFORMATS* charts)
int
iCrt
=
-
1
;
int
iCrt
=
-
1
;
for
(
in
t
i
=
0
;
i
<
charts
->
m_arSERIESFORMAT
.
size
();
i
++
)
for
(
size_
t
i
=
0
;
i
<
charts
->
m_arSERIESFORMAT
.
size
();
i
++
)
{
{
SERIESFORMAT
*
series
=
dynamic_cast
<
SERIESFORMAT
*>
(
charts
->
m_arSERIESFORMAT
[
i
].
get
());
SERIESFORMAT
*
series
=
dynamic_cast
<
SERIESFORMAT
*>
(
charts
->
m_arSERIESFORMAT
[
i
].
get
());
if
(
series
==
NULL
)
continue
;
if
(
series
==
NULL
)
continue
;
...
@@ -641,8 +641,7 @@ int ChartSheetSubstream::serialize_plot_area (std::wostream & _stream)
...
@@ -641,8 +641,7 @@ int ChartSheetSubstream::serialize_plot_area (std::wostream & _stream)
{
{
CP_XML_NODE
(
L"c:plotArea"
)
CP_XML_NODE
(
L"c:plotArea"
)
{
{
for
(
size_t
i
=
0
;
i
<
chart_formats
->
m_arAXISPARENT
.
size
();
i
++
)
for
(
int
i
=
0
;
i
<
chart_formats
->
m_arAXISPARENT
.
size
();
i
++
)
{
{
AXISPARENT
*
parent
=
dynamic_cast
<
AXISPARENT
*>
(
chart_formats
->
m_arAXISPARENT
[
i
].
get
());
AXISPARENT
*
parent
=
dynamic_cast
<
AXISPARENT
*>
(
chart_formats
->
m_arAXISPARENT
[
i
].
get
());
ax_parent
=
dynamic_cast
<
AxisParent
*>
(
parent
->
m_AxisParent
.
get
());
ax_parent
=
dynamic_cast
<
AxisParent
*>
(
parent
->
m_AxisParent
.
get
());
...
@@ -751,7 +750,7 @@ int ChartSheetSubstream::serialize_plot_area (std::wostream & _stream)
...
@@ -751,7 +750,7 @@ int ChartSheetSubstream::serialize_plot_area (std::wostream & _stream)
series
->
serialize_legend
(
stream_legend_entries
,
it
->
second
[
i
]);
series
->
serialize_legend
(
stream_legend_entries
,
it
->
second
[
i
]);
}
}
for
(
in
t
i
=
0
;
i
<
crt
->
m_arCrtLine
.
size
();
i
++
)
for
(
size_
t
i
=
0
;
i
<
crt
->
m_arCrtLine
.
size
();
i
++
)
{
{
CrtLine
*
crtLine
=
dynamic_cast
<
CrtLine
*>
(
crt
->
m_arCrtLine
[
i
].
get
());
CrtLine
*
crtLine
=
dynamic_cast
<
CrtLine
*>
(
crt
->
m_arCrtLine
[
i
].
get
());
if
(
crtLine
==
NULL
)
continue
;
if
(
crtLine
==
NULL
)
continue
;
...
@@ -1068,7 +1067,7 @@ int ChartSheetSubstream::serialize_ser (std::wstring sNodeSer, std::wostream & _
...
@@ -1068,7 +1067,7 @@ int ChartSheetSubstream::serialize_ser (std::wstring sNodeSer, std::wostream & _
SIIndex
*
series_cash
=
NULL
;
SIIndex
*
series_cash
=
NULL
;
int
type_val
=
0
;
int
type_val
=
0
;
for
(
in
t
i
=
0
;
(
series_data
)
&&
(
i
<
series_data
->
m_arSIIndex
.
size
());
i
++
)
for
(
size_
t
i
=
0
;
(
series_data
)
&&
(
i
<
series_data
->
m_arSIIndex
.
size
());
i
++
)
{
{
SIIndex
*
si_in
=
dynamic_cast
<
SIIndex
*>
(
series_data
->
m_arSIIndex
[
i
].
get
());
SIIndex
*
si_in
=
dynamic_cast
<
SIIndex
*>
(
series_data
->
m_arSIIndex
[
i
].
get
());
...
...
ASCOfficeXlsFile2/source/XlsXlsxConverter/XlsConverter.cpp
View file @
1d16f4ab
...
@@ -59,6 +59,7 @@
...
@@ -59,6 +59,7 @@
#include "../XlsFormat/Logic/Biff_unions/BACKGROUND.h"
#include "../XlsFormat/Logic/Biff_unions/BACKGROUND.h"
#include "../XlsFormat/Logic/Biff_unions/PIVOTVIEW.h"
#include "../XlsFormat/Logic/Biff_unions/PIVOTVIEW.h"
#include "../XlsFormat/Logic/Biff_unions/PIVOTCACHE.h"
#include "../XlsFormat/Logic/Biff_unions/PIVOTCACHE.h"
#include "../XlsFormat/Logic/Biff_unions/PIVOTCACHEDEFINITION.h"
#include <Logic/Biff_records/BkHim.h>
#include <Logic/Biff_records/BkHim.h>
#include <Logic/Biff_records/HLink.h>
#include <Logic/Biff_records/HLink.h>
...
@@ -1921,4 +1922,16 @@ void XlsConverter::convert(XLS::PIVOTCACHEDEFINITION * pivot_cached)
...
@@ -1921,4 +1922,16 @@ void XlsConverter::convert(XLS::PIVOTCACHEDEFINITION * pivot_cached)
{
{
if
(
pivot_cached
==
NULL
)
return
;
if
(
pivot_cached
==
NULL
)
return
;
xlsx_context
->
start_pivot_cache
();
pivot_cached
->
serialize
(
xlsx_context
->
current_pivot_cache
().
definitions
());
//if (pivot_cached->is_records())//??
{
xlsx_context
->
current_pivot_cache
().
isRecordsPresent
=
true
;
//pivot_cached->serialize_records(xlsx_context->current_pivot_cache().records());
}
xlsx_context
->
end_pivot_cache
();
}
}
\ No newline at end of file
ASCOfficeXlsFile2/source/XlsXlsxConverter/oox_package.cpp
View file @
1d16f4ab
...
@@ -172,24 +172,16 @@ void rels_files::add(std::wstring const & Id,
...
@@ -172,24 +172,16 @@ void rels_files::add(std::wstring const & Id,
{
{
return
add
(
relationship
(
Id
,
Type
,
Target
,
TargetMode
));
return
add
(
relationship
(
Id
,
Type
,
Target
,
TargetMode
));
}
}
///////////////////////////////////////////
//----------------------------------------------------------------------------------------
chart_content
::
chart_content
()
:
rels_file_
(
rels_file
::
create
(
L""
))
chart_content
::
chart_content
()
:
rels_file_
(
rels_file
::
create
(
L""
))
{
{
}
}
_CP_PTR
(
chart_content
)
chart_content
::
create
()
_CP_PTR
(
chart_content
)
chart_content
::
create
()
{
{
return
boost
::
make_shared
<
chart_content
>
();
return
boost
::
make_shared
<
chart_content
>
();
}
}
//----------------------------------------------------------------------------------------
//void chart_content::add_rel(relationship const & r)
//{
// rels_->get_rels().add(r);
//}
///////////////////////////////////////////
element_ptr
simple_element
::
create
(
const
std
::
wstring
&
FileName
,
const
std
::
wstring
&
Content
)
element_ptr
simple_element
::
create
(
const
std
::
wstring
&
FileName
,
const
std
::
wstring
&
Content
)
{
{
return
boost
::
make_shared
<
simple_element
>
(
FileName
,
Content
);
return
boost
::
make_shared
<
simple_element
>
(
FileName
,
Content
);
...
...
ASCOfficeXlsFile2/source/XlsXlsxConverter/oox_package.h
View file @
1d16f4ab
...
@@ -111,7 +111,7 @@ private:
...
@@ -111,7 +111,7 @@ private:
class
rels_file
;
class
rels_file
;
typedef
boost
::
shared_ptr
<
rels_file
>
rels_file_ptr
;
typedef
boost
::
shared_ptr
<
rels_file
>
rels_file_ptr
;
//
/ \class rels_file
//
------------------------------------------------------------------------
class
rels_file
:
public
element
class
rels_file
:
public
element
{
{
public:
public:
...
@@ -132,7 +132,7 @@ private:
...
@@ -132,7 +132,7 @@ private:
rels
rels_
;
rels
rels_
;
};
};
//
/ \class rels_files
//
------------------------------------------------------------------------
class
rels_files
:
public
element
class
rels_files
:
public
element
{
{
public:
public:
...
@@ -150,9 +150,7 @@ private:
...
@@ -150,9 +150,7 @@ private:
rels_file_ptr
rels_file_
;
rels_file_ptr
rels_file_
;
};
};
//------------------------------------------------------------------------
////////////////////////////////////////
///\class chart_files
class
chart_content
;
class
chart_content
;
typedef
_CP_PTR
(
chart_content
)
chart_content_ptr
;
typedef
_CP_PTR
(
chart_content
)
chart_content_ptr
;
...
@@ -173,8 +171,7 @@ private:
...
@@ -173,8 +171,7 @@ private:
rels_file_ptr
rels_file_
;
rels_file_ptr
rels_file_
;
};
};
//---------------------------------------------------------------------------------------------
//------------------------------------------------------------------------
class
document
:
public
element
class
document
:
public
element
{
{
public:
public:
...
...
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_chart_context.cpp
View file @
1d16f4ab
...
@@ -33,8 +33,6 @@
...
@@ -33,8 +33,6 @@
#include "oox_rels.h"
#include "oox_rels.h"
#include "mediaitems_utils.h"
#include "mediaitems_utils.h"
//#include <boost/lexical_cast.hpp>
#include <boost/foreach.hpp>
#include <boost/make_shared.hpp>
#include <boost/make_shared.hpp>
#include <simple_xml_writer.h>
#include <simple_xml_writer.h>
...
@@ -66,8 +64,9 @@ public:
...
@@ -66,8 +64,9 @@ public:
void
dump_rels
(
rels
&
Rels
)
void
dump_rels
(
rels
&
Rels
)
{
{
BOOST_FOREACH
(
rel_
const
&
r
,
chartRels_
)
for
(
size_t
i
=
0
;
i
<
chartRels_
.
size
();
i
++
)
{
{
rel_
&
r
=
chartRels_
[
i
];
if
(
r
.
type_
==
external_items
::
typeImage
)
if
(
r
.
type_
==
external_items
::
typeImage
)
{
{
Rels
.
add
(
relationship
(
Rels
.
add
(
relationship
(
...
@@ -99,8 +98,9 @@ public:
...
@@ -99,8 +98,9 @@ public:
{
{
bool
present
=
false
;
bool
present
=
false
;
BOOST_FOREACH
(
rel_
const
&
r
,
chartRels_
)
for
(
size_t
i
=
0
;
i
<
chartRels_
.
size
();
i
++
)
{
{
rel_
&
r
=
chartRels_
[
i
];
if
(
r
.
rid_
==
rid
&&
r
.
target_
==
target
)
if
(
r
.
rid_
==
rid
&&
r
.
target_
==
target
)
present
=
true
;
present
=
true
;
}
}
...
...
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_conversion_context.cpp
View file @
1d16f4ab
...
@@ -84,6 +84,17 @@ xlsx_xml_worksheet & xlsx_conversion_context::current_sheet()
...
@@ -84,6 +84,17 @@ xlsx_xml_worksheet & xlsx_conversion_context::current_sheet()
throw
std
::
runtime_error
(
"internal error"
);
throw
std
::
runtime_error
(
"internal error"
);
}
}
}
}
xlsx_pivot_cache_context
&
xlsx_conversion_context
::
current_pivot_cache
()
{
if
(
!
pivot_caches_
.
empty
())
{
return
*
pivot_caches_
.
back
().
get
();
}
else
{
throw
std
::
runtime_error
(
"internal error"
);
}
}
oox_chart_context
&
xlsx_conversion_context
::
current_chart
()
oox_chart_context
&
xlsx_conversion_context
::
current_chart
()
{
{
if
(
!
charts_
.
empty
())
if
(
!
charts_
.
empty
())
...
@@ -118,11 +129,17 @@ void xlsx_conversion_context::start_chart()
...
@@ -118,11 +129,17 @@ void xlsx_conversion_context::start_chart()
//этот контекст нужно передавать в файл
//этот контекст нужно передавать в файл
}
}
void
xlsx_conversion_context
::
end_chart
()
void
xlsx_conversion_context
::
end_chart
()
{
{
//current_chart().set_drawing_link(current_sheet().get_drawing_link());
}
//излишняя инфа
void
xlsx_conversion_context
::
start_pivot_cache
()
{
pivot_caches_
.
push_back
(
xlsx_pivot_cache_context
::
create
());
}
void
xlsx_conversion_context
::
end_pivot_cache
()
{
}
}
void
xlsx_conversion_context
::
end_table
()
void
xlsx_conversion_context
::
end_table
()
...
@@ -144,8 +161,9 @@ void xlsx_conversion_context::end_document()
...
@@ -144,8 +161,9 @@ void xlsx_conversion_context::end_document()
unsigned
int
count
=
0
;
unsigned
int
count
=
0
;
// добавляем таблицы
// добавляем таблицы
BOOST_FOREACH
(
const
xlsx_xml_worksheet_ptr
&
sheet
,
sheets_
)
for
(
size_t
i
=
0
;
i
<
sheets_
.
size
();
i
++
)
{
{
xlsx_xml_worksheet_ptr
&
sheet
=
sheets_
[
i
];
count
++
;
count
++
;
const
std
::
wstring
id
=
std
::
wstring
(
L"sId"
)
+
boost
::
lexical_cast
<
std
::
wstring
>
(
count
);
const
std
::
wstring
id
=
std
::
wstring
(
L"sId"
)
+
boost
::
lexical_cast
<
std
::
wstring
>
(
count
);
...
@@ -206,63 +224,86 @@ void xlsx_conversion_context::end_document()
...
@@ -206,63 +224,86 @@ void xlsx_conversion_context::end_document()
}
}
}
}
//добавляем диаграммы
for
(
size_t
i
=
0
;
i
<
charts_
.
size
();
i
++
)
count
=
0
;
BOOST_FOREACH
(
const
oox_chart_context_ptr
&
chart
,
charts_
)
{
{
count
++
;
package
::
chart_content_ptr
content
=
package
::
chart_content
::
create
();
package
::
chart_content_ptr
content
=
package
::
chart_content
::
create
();
chart
->
dump_rels
(
content
->
get_rels
());
chart
s_
[
i
]
->
dump_rels
(
content
->
get_rels
());
chart
->
write_to
(
content
->
content
());
chart
s_
[
i
]
->
write_to
(
content
->
content
());
output_document_
->
get_xl_files
().
add_charts
(
content
);
output_document_
->
get_xl_files
().
add_charts
(
content
);
}
}
//workbook_content << L"<calcPr iterateCount=\"100\" refMode=\"A1\" iterate=\"false\" iterateDelta=\"0.0001\" />";
//workbook_content << L"<calcPr iterateCount=\"100\" refMode=\"A1\" iterate=\"false\" iterateDelta=\"0.0001\" />";
{
output_document_
->
get_xl_files
().
set_sharedStrings
(
package
::
simple_element
::
create
(
L"sharedStrings.xml"
,
xlsx_shared_strings_
.
str
())
);
output_document_
->
get_xl_files
().
set_sharedStrings
(
package
::
simple_element
::
create
(
L"sharedStrings.xml"
,
xlsx_shared_strings_
.
str
())
);
}
{
std
::
wstringstream
strm_workbook
;
std
::
wstringstream
strm_workbook
;
CP_XML_WRITER
(
strm_workbook
)
CP_XML_WRITER
(
strm_workbook
)
{
CP_XML_NODE
(
L"workbook"
)
{
{
CP_XML_NODE
(
L"workbook"
)
CP_XML_ATTR
(
L"xmlns"
,
L"http://schemas.openxmlformats.org/spreadsheetml/2006/main"
);
CP_XML_ATTR
(
L"xmlns:r"
,
L"http://schemas.openxmlformats.org/officeDocument/2006/relationships"
);
CP_XML_NODE
(
L"bookViews"
)
{
{
CP_XML_ATTR
(
L"xmlns"
,
L"http://schemas.openxmlformats.org/spreadsheetml/2006/main"
);
CP_XML_STREAM
()
<<
xlsx_workbook_views_
.
str
(
);
CP_XML_ATTR
(
L"xmlns:r"
,
L"http://schemas.openxmlformats.org/officeDocument/2006/relationships"
);
}
CP_XML_NODE
(
L"bookView
s"
)
CP_XML_NODE
(
L"sheet
s"
)
{
{
CP_XML_STREAM
()
<<
xlsx_workbook_views_
.
str
();
CP_XML_STREAM
()
<<
workbook_content
.
str
();
}
}
CP_XML_NODE
(
L"sheets"
)
CP_XML_NODE
(
L"definedNames"
)
{
{
CP_XML_STREAM
()
<<
workbook_content
.
str
();
CP_XML_STREAM
()
<<
xlsx_defined_names_
.
str
();
}
}
std
::
wstring
str_
=
xlsx_custom_views_
.
str
();
CP_XML_NODE
(
L"definedNames"
)
if
(
!
str_
.
empty
())
{
{
CP_XML_STREAM
()
<<
xlsx_defined_names_
.
str
();
CP_XML_NODE
(
L"customWorkbookViews"
)
{
CP_XML_STREAM
()
<<
str_
;
}
}
}
std
::
wstring
str_
=
xlsx_custom_views_
.
str
();
if
(
!
pivot_caches_
.
empty
())
{
if
(
!
str_
.
empty
()
)
CP_XML_NODE
(
L"pivotCaches"
)
{
{
CP_XML_NODE
(
L"customWorkbookViews"
)
for
(
size_t
i
=
0
;
i
<
pivot_caches_
.
size
();
i
++
)
{
{
CP_XML_STREAM
()
<<
str_
;
std
::
wstring
rId
=
L"pcId"
+
std
::
to_wstring
(
i
+
1
);
static
const
std
::
wstring
sType
=
L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotCacheDefinition"
;
const
std
::
wstring
sName
=
std
::
wstring
(
L"../pivotCache/pivotCacheDefinition"
+
std
::
to_wstring
(
i
+
1
)
+
L".xml"
);
package
::
pivot_cache_content_ptr
content
=
package
::
pivot_cache_content
::
create
();
CP_XML_NODE
(
L"pivotCache"
)
{
CP_XML_ATTR
(
L"cacheId"
,
std
::
to_wstring
(
i
));
CP_XML_ATTR
(
L"r:id"
,
rId
);
//workbook_content.add_rels(relationship(rId, sType, sName));
}
pivot_caches_
[
i
]
->
dump_rels
(
content
->
get_rels
());
pivot_caches_
[
i
]
->
write_to
(
content
->
definitions
());
if
(
pivot_caches_
[
i
]
->
isRecordsPresent
)
{
pivot_caches_
[
i
]
->
write_records_to
(
content
->
records
());
}
output_document_
->
get_xl_files
().
add_pivot_cache
(
content
);
}
}
}
}
}
}
}
}
output_document_
->
get_xl_files
().
set_workbook
(
package
::
simple_element
::
create
(
L"workbook.xml"
,
strm_workbook
.
str
())
);
output_document_
->
get_xl_files
().
set_workbook
(
package
::
simple_element
::
create
(
L"workbook.xml"
,
strm_workbook
.
str
())
);
...
...
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_conversion_context.h
View file @
1d16f4ab
...
@@ -41,6 +41,7 @@
...
@@ -41,6 +41,7 @@
#include "xlsx_drawing_context.h"
#include "xlsx_drawing_context.h"
#include "xlsx_chart_context.h"
#include "xlsx_chart_context.h"
#include "xlsx_comments_context.h"
#include "xlsx_comments_context.h"
#include "xlsx_pivot_cache_context.h"
#include "xlsx_output_xml.h"
#include "xlsx_output_xml.h"
...
@@ -70,6 +71,9 @@ public:
...
@@ -70,6 +71,9 @@ public:
void
start_chart
();
void
start_chart
();
void
end_chart
();
void
end_chart
();
void
start_pivot_cache
();
void
end_pivot_cache
();
std
::
wostream
&
shared_strings
()
{
return
xlsx_shared_strings_
;
}
std
::
wostream
&
shared_strings
()
{
return
xlsx_shared_strings_
;
}
std
::
wostream
&
defined_names
()
{
return
xlsx_defined_names_
;
}
std
::
wostream
&
defined_names
()
{
return
xlsx_defined_names_
;
}
std
::
wostream
&
workbook_views
()
{
return
xlsx_workbook_views_
;
}
std
::
wostream
&
workbook_views
()
{
return
xlsx_workbook_views_
;
}
...
@@ -80,6 +84,7 @@ public:
...
@@ -80,6 +84,7 @@ public:
xlsx_xml_worksheet
&
current_sheet
();
xlsx_xml_worksheet
&
current_sheet
();
oox_chart_context
&
current_chart
();
oox_chart_context
&
current_chart
();
xlsx_pivot_cache_context
&
current_pivot_cache
();
xlsx_drawing_context
&
get_drawing_context
();
xlsx_drawing_context
&
get_drawing_context
();
xlsx_drawing_context_handle
&
get_drawing_context_handle
();
xlsx_drawing_context_handle
&
get_drawing_context_handle
();
...
@@ -95,9 +100,10 @@ private:
...
@@ -95,9 +100,10 @@ private:
external_items
mediaitems_
;
external_items
mediaitems_
;
std
::
vector
<
xlsx_xml_worksheet_ptr
>
sheets_
;
std
::
vector
<
xlsx_xml_worksheet_ptr
>
sheets_
;
std
::
vector
<
oox_chart_context_ptr
>
charts_
;
std
::
vector
<
oox_chart_context_ptr
>
charts_
;
std
::
vector
<
xlsx_pivot_cache_context_ptr
>
pivot_caches_
;
//std::wstringstream defaultOutput_;
//std::wstringstream defaultOutput_;
//std::pair<float,float> maxDigitSize_;
//std::pair<float,float> maxDigitSize_;
//num_format_context num_format_context_;
//num_format_context num_format_context_;
...
...
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_output_xml.h
View file @
1d16f4ab
...
@@ -32,8 +32,6 @@
...
@@ -32,8 +32,6 @@
#pragma once
#pragma once
#include <iosfwd>
#include <iosfwd>
#include "common.h"
#include <boost/scoped_ptr.hpp>
#include <boost/scoped_ptr.hpp>
#include <boost/noncopyable.hpp>
#include <boost/noncopyable.hpp>
...
@@ -44,7 +42,6 @@ namespace oox {
...
@@ -44,7 +42,6 @@ namespace oox {
class
xlsx_xml_worksheet
;
class
xlsx_xml_worksheet
;
typedef
boost
::
shared_ptr
<
xlsx_xml_worksheet
>
xlsx_xml_worksheet_ptr
;
typedef
boost
::
shared_ptr
<
xlsx_xml_worksheet
>
xlsx_xml_worksheet_ptr
;
/// \class xlsx_xml_worksheet
class
xlsx_xml_worksheet
:
boost
::
noncopyable
class
xlsx_xml_worksheet
:
boost
::
noncopyable
{
{
public:
public:
...
...
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_package.cpp
View file @
1d16f4ab
...
@@ -80,12 +80,21 @@ void xlsx_document::write(const std::wstring & RootPath)
...
@@ -80,12 +80,21 @@ void xlsx_document::write(const std::wstring & RootPath)
rels_files_
.
write
(
RootPath
);
rels_files_
.
write
(
RootPath
);
}
}
////////////////////////////////////////////
//--------------------------------------------------------------------------------------------
pivot_cache_content
::
pivot_cache_content
()
:
definitions_rels_file_
(
rels_file
::
create
(
L""
))
{
}
_CP_PTR
(
pivot_cache_content
)
pivot_cache_content
::
create
()
{
return
boost
::
make_shared
<
pivot_cache_content
>
();
}
sheet_content
::
sheet_content
()
:
rels_
(
rels_file
::
create
(
L""
))
sheet_content
::
sheet_content
()
:
rels_
(
rels_file
::
create
(
L""
))
{
{
}
}
//--------------------------------------------------------------------------------------------
_CP_PTR
(
sheet_content
)
sheet_content
::
create
()
_CP_PTR
(
sheet_content
)
sheet_content
::
create
()
{
{
...
@@ -202,6 +211,10 @@ void xl_files::write(const std::wstring & RootPath)
...
@@ -202,6 +211,10 @@ void xl_files::write(const std::wstring & RootPath)
{
{
charts_files_
.
set_main_document
(
get_main_document
());
charts_files_
.
set_main_document
(
get_main_document
());
charts_files_
.
write
(
path
);
charts_files_
.
write
(
path
);
}
{
pivot_cache_files_
.
set_main_document
(
get_main_document
());
pivot_cache_files_
.
write
(
path
);
}
}
if
(
drawings_
)
if
(
drawings_
)
{
{
...
@@ -264,7 +277,56 @@ void xl_files::add_charts(chart_content_ptr chart)
...
@@ -264,7 +277,56 @@ void xl_files::add_charts(chart_content_ptr chart)
{
{
charts_files_
.
add_chart
(
chart
);
charts_files_
.
add_chart
(
chart
);
}
}
////////////////////////////
void
xl_files
::
add_pivot_cache
(
pivot_cache_content_ptr
pivot_cache
)
{
pivot_cache_files_
.
add_pivot_cache
(
pivot_cache
);
}
//----------------------------------------------------------------------------------------
void
xl_pivot_cache_files
::
add_pivot_cache
(
pivot_cache_content_ptr
pivot_cache
)
{
pivot_caches_
.
push_back
(
pivot_cache
);
}
void
xl_pivot_cache_files
::
write
(
const
std
::
wstring
&
RootPath
)
{
std
::
wstring
path
=
RootPath
+
FILE_SEPARATOR_STR
+
L"pivotCache"
;
NSDirectory
::
CreateDirectory
(
path
.
c_str
());
content_type
&
contentTypes
=
this
->
get_main_document
()
->
content_type
().
get_content_type
();
static
const
std
::
wstring
kWSConTypeD
=
L"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml"
;
static
const
std
::
wstring
kWSConTypeR
=
L"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml"
;
for
(
size_t
i
=
0
;
i
<
pivot_caches_
.
size
();
i
++
)
{
if
(
pivot_caches_
[
i
])
{
const
std
::
wstring
fileNameD
=
std
::
wstring
(
L"pivotCacheDefinition"
)
+
std
::
to_wstring
(
i
+
1
)
+
L".xml"
;
contentTypes
.
add_override
(
std
::
wstring
(
L"/xl/pivotCache/"
)
+
fileNameD
,
kWSConTypeD
);
package
::
simple_element
(
fileNameD
,
pivot_caches_
[
i
]
->
str_d
()).
write
(
path
);
if
(
pivot_caches_
[
i
]
->
get_rels
().
empty
()
==
false
)
{
rels_files
relFiles
;
pivot_caches_
[
i
]
->
definitions_rels_file_
->
set_file_name
(
fileNameD
+
L".rels"
);
relFiles
.
add_rel_file
(
pivot_caches_
[
i
]
->
definitions_rels_file_
);
relFiles
.
write
(
path
);
}
std
::
wstring
content_records
=
pivot_caches_
[
i
]
->
str_r
();
if
(
!
content_records
.
empty
())
{
const
std
::
wstring
fileNameR
=
std
::
wstring
(
L"pivotCacheRecords"
)
+
std
::
to_wstring
(
i
+
1
)
+
L".xml"
;
contentTypes
.
add_override
(
std
::
wstring
(
L"/xl/pivotCache/"
)
+
fileNameR
,
kWSConTypeD
);
package
::
simple_element
(
fileNameR
,
content_records
).
write
(
path
);
}
}
}
}
//----------------------------------------------------------------------------------------
void
xl_charts_files
::
add_chart
(
chart_content_ptr
chart
)
void
xl_charts_files
::
add_chart
(
chart_content_ptr
chart
)
{
{
charts_
.
push_back
(
chart
);
charts_
.
push_back
(
chart
);
...
@@ -274,14 +336,15 @@ void xl_charts_files::write(const std::wstring & RootPath)
...
@@ -274,14 +336,15 @@ void xl_charts_files::write(const std::wstring & RootPath)
std
::
wstring
path
=
RootPath
+
FILE_SEPARATOR_STR
+
L"charts"
;
std
::
wstring
path
=
RootPath
+
FILE_SEPARATOR_STR
+
L"charts"
;
NSDirectory
::
CreateDirectory
(
path
.
c_str
());
NSDirectory
::
CreateDirectory
(
path
.
c_str
());
content_type
&
contentTypes
=
this
->
get_main_document
()
->
content_type
().
get_content_type
();
static
const
std
::
wstring
kWSConType
=
L"application/vnd.openxmlformats-officedocument.drawingml.chart+xml"
;
for
(
size_t
i
=
0
;
i
<
charts_
.
size
();
i
++
)
for
(
size_t
i
=
0
;
i
<
charts_
.
size
();
i
++
)
{
{
if
(
charts_
[
i
])
if
(
charts_
[
i
])
{
{
const
std
::
wstring
fileName
=
std
::
wstring
(
L"chart"
)
+
std
::
to_wstring
(
i
+
1
)
+
L".xml"
;
const
std
::
wstring
fileName
=
std
::
wstring
(
L"chart"
)
+
std
::
to_wstring
(
i
+
1
)
+
L".xml"
;
content_type
&
contentTypes
=
this
->
get_main_document
()
->
content_type
().
get_content_type
();
static
const
std
::
wstring
kWSConType
=
L"application/vnd.openxmlformats-officedocument.drawingml.chart+xml"
;
contentTypes
.
add_override
(
std
::
wstring
(
L"/xl/charts/"
)
+
fileName
,
kWSConType
);
contentTypes
.
add_override
(
std
::
wstring
(
L"/xl/charts/"
)
+
fileName
,
kWSConType
);
package
::
simple_element
(
fileName
,
charts_
[
i
]
->
str
()).
write
(
path
);
package
::
simple_element
(
fileName
,
charts_
[
i
]
->
str
()).
write
(
path
);
...
@@ -297,7 +360,7 @@ void xl_charts_files::write(const std::wstring & RootPath)
...
@@ -297,7 +360,7 @@ void xl_charts_files::write(const std::wstring & RootPath)
}
}
}
}
}
}
//
////////////////////////
//
----------------------------------------------------------------------------------------
xl_drawings_ptr
xl_drawings
::
create
(
const
std
::
vector
<
drawing_elm
>
&
elms
)
xl_drawings_ptr
xl_drawings
::
create
(
const
std
::
vector
<
drawing_elm
>
&
elms
)
{
{
return
boost
::
make_shared
<
xl_drawings
>
(
boost
::
ref
(
elms
));
return
boost
::
make_shared
<
xl_drawings
>
(
boost
::
ref
(
elms
));
...
...
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_package.h
View file @
1d16f4ab
...
@@ -38,7 +38,6 @@
...
@@ -38,7 +38,6 @@
#include "xlsx_drawings.h"
#include "xlsx_drawings.h"
#include "xlsx_comments.h"
#include "xlsx_comments.h"
namespace
oox
{
namespace
oox
{
namespace
package
{
namespace
package
{
...
@@ -47,7 +46,7 @@ class xlsx_content_types_file : public content_types_file
...
@@ -47,7 +46,7 @@ class xlsx_content_types_file : public content_types_file
public:
public:
xlsx_content_types_file
();
xlsx_content_types_file
();
};
};
//------------------------------------------------------------------------
class
sheet_content
;
class
sheet_content
;
typedef
_CP_PTR
(
sheet_content
)
sheet_content_ptr
;
typedef
_CP_PTR
(
sheet_content
)
sheet_content_ptr
;
...
@@ -66,7 +65,30 @@ private:
...
@@ -66,7 +65,30 @@ private:
std
::
wstringstream
content_
;
std
::
wstringstream
content_
;
rels_file_ptr
rels_
;
rels_file_ptr
rels_
;
};
};
//------------------------------------------------------------------------
class
pivot_cache_content
;
typedef
_CP_PTR
(
pivot_cache_content
)
pivot_cache_content_ptr
;
class
pivot_cache_content
:
boost
::
noncopyable
{
public:
pivot_cache_content
();
static
_CP_PTR
(
pivot_cache_content
)
create
();
std
::
wostream
&
definitions
()
{
return
definitions_
;
}
std
::
wostream
&
records
()
{
return
records_
;
}
rels
&
get_rels
()
{
return
definitions_rels_file_
->
get_rels
();
}
std
::
wstring
str_d
()
{
return
definitions_
.
str
();
}
std
::
wstring
str_r
()
{
return
records_
.
str
();
}
friend
class
xl_pivot_cache_files
;
private:
std
::
wstringstream
records_
;
std
::
wstringstream
definitions_
;
rels_file_ptr
definitions_rels_file_
;
};
//------------------------------------------------------------------------
class
sheets_files
:
public
element
class
sheets_files
:
public
element
{
{
public:
public:
...
@@ -97,6 +119,18 @@ public:
...
@@ -97,6 +119,18 @@ public:
std
::
vector
<
chart_content_ptr
>
charts_
;
std
::
vector
<
chart_content_ptr
>
charts_
;
};
class
xl_pivot_cache_files
:
public
element
{
public:
xl_pivot_cache_files
(){}
void
add_pivot_cache
(
pivot_cache_content_ptr
pivot_cache
);
virtual
void
write
(
const
std
::
wstring
&
RootPath
);
std
::
vector
<
pivot_cache_content_ptr
>
pivot_caches_
;
};
};
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
...
@@ -161,13 +195,15 @@ public:
...
@@ -161,13 +195,15 @@ public:
void
set_vml_drawings
(
element_ptr
Element
);
void
set_vml_drawings
(
element_ptr
Element
);
void
set_comments
(
element_ptr
Element
);
void
set_comments
(
element_ptr
Element
);
void
add_charts
(
chart_content_ptr
chart
);
void
add_charts
(
chart_content_ptr
chart
);
void
add_pivot_cache
(
pivot_cache_content_ptr
pivot
);
private:
private:
rels_files
rels_files_
;
rels_files
rels_files_
;
sheets_files
sheets_files_
;
sheets_files
sheets_files_
;
xl_charts_files
charts_files_
;
xl_charts_files
charts_files_
;
element_ptr
theme_
;
xl_pivot_cache_files
pivot_cache_files_
;
element_ptr
workbook_
;
element_ptr
theme_
;
element_ptr
workbook_
;
element_ptr
styles_
;
element_ptr
styles_
;
element_ptr
sharedStrings_
;
element_ptr
sharedStrings_
;
...
...
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_pivot_cache_context.cpp
0 → 100644
View file @
1d16f4ab
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "xlsx_pivot_cache_context.h"
#include "oox_rels.h"
#include "mediaitems_utils.h"
#include <boost/make_shared.hpp>
#include <simple_xml_writer.h>
namespace
oox
{
class
xlsx_pivot_cache_context
::
Impl
{
// struct rel_
// {
// rel_(bool is_internal, std::wstring const & rid, std::wstring const & target, external_items::Type type) :
// is_internal_(is_internal),
// rid_(rid),
//target_(target),
// type_(type)
// {}
// bool is_internal_;
// std::wstring rid_;
// std::wstring target_;
// external_items::Type type_;
// };
public:
Impl
()
{}
std
::
wstringstream
definitionsData_
;
std
::
wstringstream
recordsData_
;
//rels rels_;
};
xlsx_pivot_cache_context_ptr
xlsx_pivot_cache_context
::
create
()
{
return
boost
::
make_shared
<
xlsx_pivot_cache_context
>
();
}
int
countPivotCaches
=
0
;
xlsx_pivot_cache_context
::
xlsx_pivot_cache_context
()
:
impl_
(
new
xlsx_pivot_cache_context
::
Impl
()),
isRecordsPresent
(
false
)
{
index
=
++
countPivotCaches
;
}
std
::
wostream
&
xlsx_pivot_cache_context
::
definitions
()
{
return
impl_
->
definitionsData_
;
}
std
::
wostream
&
xlsx_pivot_cache_context
::
records
()
{
return
impl_
->
recordsData_
;
}
//void xlsx_pivot_cache_context::add_rels(
// bool isInternal,
// std::wstring const & rid,
// std::wstring const & target,
// external_items::Type type)
//{
// impl_->add_rels(isInternal, rid, target, type);
//}
void
xlsx_pivot_cache_context
::
dump_rels
(
rels
&
Rels
)
{
// impl_->dump_rels(Rels);
if
(
isRecordsPresent
)
{
Rels
.
add
(
relationship
(
L"rId1"
,
L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotCacheRecords"
,
L"pivotCache/pivotCacheDefinition"
+
std
::
to_wstring
(
index
)
+
L".xml"
,
L""
));
}
}
void
xlsx_pivot_cache_context
::
write_to
(
std
::
wostream
&
strm
)
{
CP_XML_WRITER
(
strm
)
{
CP_XML_NODE
(
L"pivotCacheDefinition"
)
{
CP_XML_ATTR
(
L"xmlns:r"
,
L"http://schemas.openxmlformats.org/officeDocument/2006/relationships"
);
CP_XML_ATTR
(
L"xmlns"
,
L"http://schemas.openxmlformats.org/spreadsheetml/2006/main"
);
if
(
isRecordsPresent
)
{
CP_XML_ATTR
(
L"r:id"
,
L"rId1"
);
}
//refreshedBy="Debra S Dalgleish"
//refreshedDate="39449.496381365738"
//createdVersion="1"
//refreshedVersion="2"
//recordCount="11"
//upgradeOnRefresh="1">
CP_XML_STREAM
()
<<
impl_
->
definitionsData_
.
str
();
}
}
}
void
xlsx_pivot_cache_context
::
write_records_to
(
std
::
wostream
&
strm
)
{
CP_XML_WRITER
(
strm
)
{
CP_XML_NODE
(
L"pivotCacheRecords"
)
{
CP_XML_ATTR
(
L"xmlns:r"
,
L"http://schemas.openxmlformats.org/officeDocument/2006/relationships"
);
CP_XML_ATTR
(
L"xmlns"
,
L"http://schemas.openxmlformats.org/spreadsheetml/2006/main"
);
CP_XML_STREAM
()
<<
impl_
->
recordsData_
.
str
();
}
}
}
xlsx_pivot_cache_context
::~
xlsx_pivot_cache_context
()
{
}
}
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_pivot_cache_context.h
0 → 100644
View file @
1d16f4ab
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "oox_package.h"
namespace
oox
{
class
xlsx_pivot_cache_context
;
typedef
_CP_PTR
(
xlsx_pivot_cache_context
)
xlsx_pivot_cache_context_ptr
;
class
xlsx_pivot_cache_context
{
public:
xlsx_pivot_cache_context
();
~
xlsx_pivot_cache_context
();
std
::
wostream
&
definitions
();
std
::
wostream
&
records
();
void
write_to
(
std
::
wostream
&
strm
);
void
write_records_to
(
std
::
wostream
&
strm
);
void
dump_rels
(
rels
&
Rels
);
static
xlsx_pivot_cache_context_ptr
create
();
//void add_rels( bool isInternal,
// std::wstring const & rid,
// std::wstring const & target,
// external_items::Type type);
bool
isRecordsPresent
;
int
index
;
private:
class
Impl
;
_CP_PTR
(
Impl
)
impl_
;
};
}
ASCOfficeXlsFile2/source/linux/XlsFormatLib.pro
View file @
1d16f4ab
...
@@ -839,6 +839,7 @@ SOURCES += \
...
@@ -839,6 +839,7 @@ SOURCES += \
..
/
XlsXlsxConverter
/
xlsx_tablecontext
.
cpp
\
..
/
XlsXlsxConverter
/
xlsx_tablecontext
.
cpp
\
..
/
XlsXlsxConverter
/
xlsx_textcontext
.
cpp
\
..
/
XlsXlsxConverter
/
xlsx_textcontext
.
cpp
\
..
/
XlsXlsxConverter
/
xlsx_chart_context
.
cpp
\
..
/
XlsXlsxConverter
/
xlsx_chart_context
.
cpp
\
..
/
XlsXlsxConverter
/
xlsx_pivot_cache_context
.
cpp
\
..
/
XlsXlsxConverter
/
xlsx_comments
.
cpp
\
..
/
XlsXlsxConverter
/
xlsx_comments
.
cpp
\
..
/
XlsXlsxConverter
/
xlsx_comments_context
.
cpp
\
..
/
XlsXlsxConverter
/
xlsx_comments_context
.
cpp
\
...
@@ -1596,6 +1597,7 @@ HEADERS += \
...
@@ -1596,6 +1597,7 @@ HEADERS += \
..
/
XlsXlsxConverter
/
xlsx_conversion_context
.
h
\
..
/
XlsXlsxConverter
/
xlsx_conversion_context
.
h
\
..
/
XlsXlsxConverter
/
xlsx_drawing_context
.
h
\
..
/
XlsXlsxConverter
/
xlsx_drawing_context
.
h
\
..
/
XlsXlsxConverter
/
xlsx_drawings
.
h
\
..
/
XlsXlsxConverter
/
xlsx_drawings
.
h
\
..
/
XlsXlsxConverter
/
xlsx_pivot_cache_context
.
cpp
\
..
/
XlsXlsxConverter
/
xlsx_hyperlinks
.
h
\
..
/
XlsXlsxConverter
/
xlsx_hyperlinks
.
h
\
..
/
XlsXlsxConverter
/
xlsx_output_xml
.
h
\
..
/
XlsXlsxConverter
/
xlsx_output_xml
.
h
\
..
/
XlsXlsxConverter
/
xlsx_package
.
h
\
..
/
XlsXlsxConverter
/
xlsx_package
.
h
\
...
...
ASCOfficeXlsFile2/source/win32/XlsXlsxConverter.vcproj
View file @
1d16f4ab
...
@@ -416,6 +416,14 @@
...
@@ -416,6 +416,14 @@
RelativePath=
"..\XlsXlsxConverter\xlsx_package.h"
RelativePath=
"..\XlsXlsxConverter\xlsx_package.h"
>
>
</File>
</File>
<File
RelativePath=
"..\XlsXlsxConverter\xlsx_pivot_cache_context.cpp"
>
</File>
<File
RelativePath=
"..\XlsXlsxConverter\xlsx_pivot_cache_context.h"
>
</File>
<File
<File
RelativePath=
"..\XlsXlsxConverter\xlsx_tablecontext.cpp"
RelativePath=
"..\XlsXlsxConverter\xlsx_tablecontext.cpp"
>
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment