Add pivotCache stream writing

This commit is contained in:
Viktor Andreev
2025-10-02 15:41:11 +06:00
parent 3e9b0ffbda
commit fdb9eaa2a5
2 changed files with 11 additions and 0 deletions

View File

@ -34,6 +34,7 @@
#include "../Format/Binary/CompoundFile.h"
#include "../Format/Binary/CFStreamCacheWriter.h"
#include "../Format/Logic/WorkbookStreamObject.h"
#include <iomanip>
bool XlsWriter::Open(const std::wstring &fileName)
{
@ -78,3 +79,12 @@ bool XlsWriter::WriteStreamObject(std::wstring &streamName, XLS::BaseObjectPtr s
stream_proc.mandatory(*streamObject);
return true;
}
bool XlsWriter::WritePivotCache(XLS::BaseObjectPtr streamObject, _UINT32 cacheId)
{
auto DirectoryName = L"_SX_DB_CUR/";
std::wstringstream ss;
ss << std::hex << std::setw(4) << std::setfill(L'0') << std::uppercase << cacheId;
std::wstring streamName = DirectoryName + ss.str();
return WriteStreamObject(streamName, streamObject);
}

View File

@ -44,6 +44,7 @@ class XlsWriter
public:
bool Open(const std::wstring &fileName);
bool WriteWorkbook(XLS::BaseObjectPtr streamObject);
bool WritePivotCache(XLS::BaseObjectPtr streamObject, _UINT32 cacheId);
bool WriteStreamObject(std::wstring &streamName, XLS::BaseObjectPtr streamObject);
boost::shared_ptr<XLS::GlobalWorkbookInfo> globalInfoPtr;