Niechciana konwersja z plików xlsx

1

Używam biblioteki xlnt w celu pobrania danych z Excela w języku c++. Podczas pobierania daty do mojego programu z komórki Excel'a, w której jest data w postaci "1992-01-23" dochodzi do konwersji i dostaję niepożądany wynik "33626". Tak się dzieje tylko w postaciach jak podałem wcześniej tzn. gdy w komórce jest data w postaci "1992/01/23" to dostaję na cout "1992/01/23" (czyli wszystko ok). Prawdopodobnie trudno będzie wskazać przyczynę tego bo jest to pewnie błąd w bibliotece, ale pamiętam że adres ip np. 192.168.0.1 można było zapisać w postaci inta i odwrotnie. Czy jest możliwość z liczby 33626 uzyskać datę "1992-01-23". Załączam przykładowy kod może się przyda..

#include <iostream>
#include <xlnt/xlnt.hpp>

using namespace std;
int main(){
xlnt::workbook wb;
xlnt::worksheet ws = wb.active_sheet();
auto a =ws.cell(xlnt::cell_reference("A",1 )).to_string(); //w tym przypadku to_string() nie działa
//w komórce A1 jest data 1992-01-23
cout<<a<<endl;
}
4

Przyczyna jest prosta

  • 1992/01/23 to nie jest data tylko tekst
  • Daty w excelu przechowywane w postaci liczby (dla wygody odejmowania i dodawania)
  • Jak chcesz wyeksportować to musisz skonwertować jako ilość dni od 31/12/1899 (1 => 1/1/1900)

1 użytkowników online, w tym zalogowanych: 0, gości: 1