Merge branch 'master' into feature/streaming

This commit is contained in:
Thomas Fussell 2017-06-15 18:10:37 -04:00
commit 7b391321f6
3 changed files with 27 additions and 6 deletions

View File

@ -8,7 +8,7 @@
[![License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](http://opensource.org/licenses/MIT) [![License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](http://opensource.org/licenses/MIT)
## Introduction ## Introduction
xlnt is a modern C++ library for manipulating spreadsheets in memory and reading/writing them from/to XLSX files as described in [ECMA 376 4th edition](http://www.ecma-international.org/publications/standards/Ecma-376.htm). xlnt is currently under active feature development and is on track for the version 1.0 release in the next few weeks. Until then, the API could have significant changes. For a high-level summary of what you can do with this library, see [the feature list](https://tfussell.gitbooks.io/xlnt/content/docs/introduction/Features.html). xlnt is a modern C++ library for manipulating spreadsheets in memory and reading/writing them from/to XLSX files as described in [ECMA 376 4th edition](http://www.ecma-international.org/publications/standards/Ecma-376.htm). The first public release of xlnt version 1.0 was on May 10th, 2017. Current work is focused on increasing compatibility, improving performance, and brainstorming future development goals. For a high-level summary of what you can do with this library, see [the feature list](https://tfussell.gitbooks.io/xlnt/content/docs/introduction/Features.html). Contributions are welcome in the form of pull requests or discussions on [the repository's Issues page](https://github.com/tfussell/xlnt/issues).
## Example ## Example
@ -29,7 +29,7 @@ int main()
wb.save("example.xlsx"); wb.save("example.xlsx");
return 0; return 0;
} }
// compile with -std=c++14 -Ixlnt/include -Lxlnt/lib -lxlnt // compile with -std=c++14 -Ixlnt/include -lxlnt
``` ```
## Documentation ## Documentation

View File

@ -551,10 +551,26 @@ void xlsx_consumer::read_office_document(const std::string &content_type, bool s
"showHorizontalScroll", "showSheetTabs", "showVerticalScroll"}); "showHorizontalScroll", "showSheetTabs", "showVerticalScroll"});
workbook_view view; workbook_view view;
view.x_window = parser().attribute<std::size_t>("xWindow");
view.y_window = parser().attribute<std::size_t>("yWindow"); if (parser().attribute_present("xWindow"))
view.window_width = parser().attribute<std::size_t>("windowWidth"); {
view.window_height = parser().attribute<std::size_t>("windowHeight"); view.x_window = parser().attribute<std::size_t>("xWindow");
}
if (parser().attribute_present("yWindow"))
{
view.y_window = parser().attribute<std::size_t>("yWindow");
}
if (parser().attribute_present("windowWidth"))
{
view.window_width = parser().attribute<std::size_t>("windowWidth");
}
if (parser().attribute_present("windowHeight"))
{
view.window_height = parser().attribute<std::size_t>("windowHeight");
}
if (parser().attribute_present("tabRatio")) if (parser().attribute_present("tabRatio"))
{ {

View File

@ -39,6 +39,11 @@ void manifest::clear()
path manifest::canonicalize(const std::vector<xlnt::relationship> &rels) const path manifest::canonicalize(const std::vector<xlnt::relationship> &rels) const
{ {
if (rels.back().target().path().is_absolute())
{
return rels.back().target().path().relative_to(path("/"));
}
xlnt::path relative; xlnt::path relative;
for (auto component : rels) for (auto component : rels)