mirror of
https://github.com/tfussell/xlnt.git
synced 2024-03-22 13:11:17 +08:00
remove unused zip_file function and delete removed source file packaging/document_properties
This commit is contained in:
parent
ccc3995709
commit
d15ef0f6bf
|
@ -1,41 +0,0 @@
|
||||||
// Copyright (c) 2014-2016 Thomas Fussell
|
|
||||||
// Copyright (c) 2010-2015 openpyxl
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, WRISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE
|
|
||||||
//
|
|
||||||
// @license: http://www.opensource.org/licenses/mit-license.php
|
|
||||||
// @author: see AUTHORS file
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
#include <xlnt/xlnt_config.hpp>
|
|
||||||
|
|
||||||
namespace xlnt {
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// High-level properties of the OOXML document regarding the app that created it.
|
|
||||||
/// </summary>
|
|
||||||
class XLNT_CLASS app_properties
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace xlnt
|
|
|
@ -1,44 +0,0 @@
|
||||||
// Copyright (c) 2014-2016 Thomas Fussell
|
|
||||||
// Copyright (c) 2010-2015 openpyxl
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, WRISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE
|
|
||||||
//
|
|
||||||
// @license: http://www.opensource.org/licenses/mit-license.php
|
|
||||||
// @author: see AUTHORS file
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
#include <xlnt/xlnt_config.hpp>
|
|
||||||
#include <xlnt/utils/datetime.hpp>
|
|
||||||
|
|
||||||
namespace xlnt {
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// High-level properties of the OOXML document.
|
|
||||||
/// </summary>
|
|
||||||
class XLNT_CLASS document_properties
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
document_properties();
|
|
||||||
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace xlnt
|
|
|
@ -3,6 +3,7 @@
|
||||||
#include <detail/constants.hpp>
|
#include <detail/constants.hpp>
|
||||||
#include <detail/include_pugixml.hpp>
|
#include <detail/include_pugixml.hpp>
|
||||||
#include <xlnt/utils/path.hpp>
|
#include <xlnt/utils/path.hpp>
|
||||||
|
#include <xlnt/packaging/manifest.hpp>
|
||||||
#include <xlnt/packaging/zip_file.hpp>
|
#include <xlnt/packaging/zip_file.hpp>
|
||||||
#include <xlnt/workbook/const_worksheet_iterator.hpp>
|
#include <xlnt/workbook/const_worksheet_iterator.hpp>
|
||||||
#include <xlnt/workbook/workbook.hpp>
|
#include <xlnt/workbook/workbook.hpp>
|
||||||
|
@ -46,17 +47,19 @@ void write_content_types(const xlnt::workbook &target, xlnt::zip_file &archive)
|
||||||
auto types_node = document.append_child("Types");
|
auto types_node = document.append_child("Types");
|
||||||
types_node.append_attribute("xmlns").set_value("http://schemas.openxmlformats.org/package/2006/content-types");
|
types_node.append_attribute("xmlns").set_value("http://schemas.openxmlformats.org/package/2006/content-types");
|
||||||
|
|
||||||
|
for (const auto &default_type : target.get_manifest().get_default_types())
|
||||||
|
{
|
||||||
auto default_node = types_node.append_child("Default");
|
auto default_node = types_node.append_child("Default");
|
||||||
default_node.append_attribute("Extension").set_value("rels");
|
default_node.append_attribute("Extension").set_value(default_type.second.get_extension().c_str());
|
||||||
default_node.append_attribute("ContentType").set_value("application/vnd.openxmlformats-package.relationships+xml");
|
default_node.append_attribute("ContentType").set_value(default_type.second.get_content_type().c_str());
|
||||||
|
}
|
||||||
|
|
||||||
auto workbook_override_node = types_node.append_child("Override");
|
for (const auto &override_type : target.get_manifest().get_override_types())
|
||||||
workbook_override_node.append_attribute("PartName").set_value("/workbook.xml");
|
{
|
||||||
workbook_override_node.append_attribute("ContentType").set_value("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml");
|
auto override_node = types_node.append_child("Override");
|
||||||
|
override_node.append_attribute("PartName").set_value(override_type.second.get_part().to_string('/').c_str());
|
||||||
auto sheet_override_node = types_node.append_child("Default");
|
override_node.append_attribute("ContentType").set_value(override_type.second.get_content_type().c_str());
|
||||||
sheet_override_node.append_attribute("PartName").set_value("/sheet1.xml");
|
}
|
||||||
sheet_override_node.append_attribute("ContentType").set_value("application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml");
|
|
||||||
|
|
||||||
write_document_to_archive(document, xlnt::constants::part_content_types(), archive);
|
write_document_to_archive(document, xlnt::constants::part_content_types(), archive);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
// Copyright (c) 2014-2016 Thomas Fussell
|
|
||||||
// Copyright (c) 2010-2015 openpyxl
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, WRISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE
|
|
||||||
//
|
|
||||||
// @license: http://www.opensource.org/licenses/mit-license.php
|
|
||||||
// @author: see AUTHORS file
|
|
||||||
#include <xlnt/packaging/document_properties.hpp>
|
|
||||||
|
|
||||||
namespace xlnt {
|
|
||||||
|
|
||||||
document_properties::document_properties()
|
|
||||||
: created(1900, 1, 1),
|
|
||||||
modified(1900, 1, 1),
|
|
||||||
excel_base_date(calendar::windows_1900)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace xlnt
|
|
|
@ -21,6 +21,7 @@
|
||||||
//
|
//
|
||||||
// @license: http://www.opensource.org/licenses/mit-license.php
|
// @license: http://www.opensource.org/licenses/mit-license.php
|
||||||
// @author: see AUTHORS file
|
// @author: see AUTHORS file
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
@ -28,38 +29,11 @@
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
#include <miniz.h>
|
#include <miniz.h>
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
#include <direct.h>
|
|
||||||
#else
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <detail/include_windows.hpp>
|
|
||||||
#include <xlnt/packaging/zip_file.hpp>
|
#include <xlnt/packaging/zip_file.hpp>
|
||||||
#include <xlnt/utils/path.hpp>
|
#include <xlnt/utils/path.hpp>
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
void mkdir_recursive(const xlnt::path &path)
|
|
||||||
{
|
|
||||||
if (path.exists()) return;
|
|
||||||
|
|
||||||
auto parent = path.parent();
|
|
||||||
|
|
||||||
if (!parent.is_root())
|
|
||||||
{
|
|
||||||
mkdir_recursive(parent);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
_mkdir(path.to_string().c_str());
|
|
||||||
#else
|
|
||||||
mkdir(path.c_str(), 0755);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
uint32_t crc32buf(const char *buf, std::size_t len)
|
uint32_t crc32buf(const char *buf, std::size_t len)
|
||||||
{
|
{
|
||||||
uint32_t oldcrc32 = 0xFFFFFFFF;
|
uint32_t oldcrc32 = 0xFFFFFFFF;
|
||||||
|
|
|
@ -64,6 +64,10 @@ workbook workbook::minimal()
|
||||||
auto impl = new detail::workbook_impl();
|
auto impl = new detail::workbook_impl();
|
||||||
workbook wb(impl);
|
workbook wb(impl);
|
||||||
|
|
||||||
|
wb.create_sheet();
|
||||||
|
|
||||||
|
wb.d_->root_relationships_.push_back(relationship(relationship::type::office_document, "rId1", constants::part_workbook().to_string()));
|
||||||
|
|
||||||
return wb;
|
return wb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,6 +76,10 @@ workbook workbook::empty_excel()
|
||||||
auto impl = new detail::workbook_impl();
|
auto impl = new detail::workbook_impl();
|
||||||
xlnt::workbook wb(impl);
|
xlnt::workbook wb(impl);
|
||||||
|
|
||||||
|
wb.d_->root_relationships_.push_back(relationship(relationship::type::core_properties, "rId1", constants::part_core().to_string()));
|
||||||
|
wb.d_->root_relationships_.push_back(relationship(relationship::type::extended_properties, "rId2", constants::part_app().to_string()));
|
||||||
|
wb.d_->root_relationships_.push_back(relationship(relationship::type::office_document, "rId3", constants::part_workbook().to_string()));
|
||||||
|
|
||||||
wb.set_application("Microsoft Excel");
|
wb.set_application("Microsoft Excel");
|
||||||
wb.create_sheet();
|
wb.create_sheet();
|
||||||
wb.add_format(format());
|
wb.add_format(format());
|
||||||
|
@ -711,16 +719,6 @@ const manifest &workbook::get_manifest() const
|
||||||
|
|
||||||
const std::vector<relationship> &workbook::get_root_relationships() const
|
const std::vector<relationship> &workbook::get_root_relationships() const
|
||||||
{
|
{
|
||||||
if (d_->root_relationships_.empty())
|
|
||||||
{
|
|
||||||
d_->root_relationships_.push_back(
|
|
||||||
relationship(relationship::type::core_properties, "rId1", constants::part_core().to_string()));
|
|
||||||
d_->root_relationships_.push_back(
|
|
||||||
relationship(relationship::type::extended_properties, "rId2", constants::part_app().to_string()));
|
|
||||||
d_->root_relationships_.push_back(
|
|
||||||
relationship(relationship::type::office_document, "rId3", constants::part_workbook().to_string()));
|
|
||||||
}
|
|
||||||
|
|
||||||
return d_->root_relationships_;
|
return d_->root_relationships_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user