mirror of
https://github.com/tfussell/xlnt.git
synced 2024-03-22 13:11:17 +08:00
Merge branch 'master' into feature/streaming
This commit is contained in:
commit
7b391321f6
|
@ -8,7 +8,7 @@
|
|||
[![License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](http://opensource.org/licenses/MIT)
|
||||
|
||||
## 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
|
||||
|
||||
|
@ -29,7 +29,7 @@ int main()
|
|||
wb.save("example.xlsx");
|
||||
return 0;
|
||||
}
|
||||
// compile with -std=c++14 -Ixlnt/include -Lxlnt/lib -lxlnt
|
||||
// compile with -std=c++14 -Ixlnt/include -lxlnt
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
|
|
@ -551,10 +551,26 @@ void xlsx_consumer::read_office_document(const std::string &content_type, bool s
|
|||
"showHorizontalScroll", "showSheetTabs", "showVerticalScroll"});
|
||||
|
||||
workbook_view view;
|
||||
view.x_window = parser().attribute<std::size_t>("xWindow");
|
||||
view.y_window = parser().attribute<std::size_t>("yWindow");
|
||||
view.window_width = parser().attribute<std::size_t>("windowWidth");
|
||||
view.window_height = parser().attribute<std::size_t>("windowHeight");
|
||||
|
||||
if (parser().attribute_present("xWindow"))
|
||||
{
|
||||
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"))
|
||||
{
|
||||
|
|
|
@ -39,6 +39,11 @@ void manifest::clear()
|
|||
|
||||
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;
|
||||
|
||||
for (auto component : rels)
|
||||
|
|
Loading…
Reference in New Issue
Block a user