diff --git a/src/xlsb.cpp b/src/xlsb.cpp index 1bd9b235a..1d8650aee 100644 --- a/src/xlsb.cpp +++ b/src/xlsb.cpp @@ -2382,8 +2382,8 @@ int32_t worksheet_bin(std::string filePath, bool chartsheet, std::string outPath stHeaderFirst << ": " << stFooterFirst << std::endl; out << "<headerFooter>" << - "<oddHeader>" << stHeaderEven <<"</oddHeader>" << - "<oddFooter>" << stFooterEven <<"</oddFooter>" << + "<oddHeader>" << stHeader <<"</oddHeader>" << + "<oddFooter>" << stFooter <<"</oddFooter>" << "<firstHeader>" << stHeaderFirst <<"</firstHeader>" << "<firstFooter>" << stFooterFirst <<"</firstFooter>" << "<evenHeader>" << stHeaderEven <<"</evenHeader>" << @@ -2490,7 +2490,7 @@ int32_t worksheet_bin(std::string filePath, bool chartsheet, std::string outPath if (fields->fBestFit) out << " bestFit=\"" << fields->fBestFit << "\""; if (fields->iOutLevel>0) - out << " outlineLevel=\"" << fields->iOutLevel << "\""; + out << " outlineLevel=\"" << (uint16_t)fields->iOutLevel << "\""; if (fields->fCollapsed) out << " collapsed=\"" << fields->fCollapsed << "\""; diff --git a/src/xlsb_funs.h b/src/xlsb_funs.h index 9cdf6948a..71e9b3f82 100644 --- a/src/xlsb_funs.h +++ b/src/xlsb_funs.h @@ -1894,6 +1894,26 @@ std::string rgce(std::string fml_out, std::istream& sas, bool swapit, bool debug break; } + case PtgAreaErr: + case PtgAreaErr2: + case PtgAreaErr3: + { + if (debug) Rcpp::Rcout << "PtgAreaErr" <<std::endl; + + uint32_t unused1 = 0, unused2 = 0, unused3 = 0; + unused1 = readbin(unused1, sas, swapit); + unused2 = readbin(unused2, sas, swapit); + unused3 = readbin(unused3, sas, swapit); + + // could not reproduce this locally + fml_out += "#REF!"; + fml_out += "\n"; + + if (debug) Rcpp::Rcout << sas.tellg() << std::endl; + + break; + } + case PtgAreaErr3d: case PtgAreaErr3d2: case PtgAreaErr3d3: