[C#] Excel - liczba przechowywana jako tekst


(Marcin Obala) #1

Witam

Mam pewien problem. Zapisuję dane do Excela przy użyciu Microsoft.Office.Interop.Excel. Dane zapisuje przy pomocy tablicy dwuwymiarowej

rng.Value2 = data;

lub

rng.set_Value(Excel.XlRangeValueDataType.xlRangeValueDefault, data);

Tablica data jest typu string. Danych w tabeli może być do kilkuset tysięcy linijek przy 23 kolumnach. Problem jest taki że jak wrzucę dane do excela to obok liczb pojawia się zielony trójkącik z informacją że liczba jest przechowywana jako tekst i czy skonwertować. Czy ktoś wie jak to skonwertować programowo? NumberFormat nie działa gdyż excel widzi komórki jako tekst i format zadziała dopiero po przerobieniu ich na liczby. Nie widzi mi się też dzielić danych na kolumny z wyodrębnieniem nagłówków bo eksport do Excela działa bardzo wolno. W dodatku nie zawsze wiem jak kolumny zostaną ułożone więc nie mogę na stałe ustawić rozdzielania że kolumny 5,10 i 15 będą liczbami. Czy ktoś zna trochę Interop.Excel?


(Fiołek) #2

A nie wystarczy podać tablicy data już jako liczb? Z tego co pamiętam, wtedy powinno wszystko działać tak jak chcesz.


(Marcin Obala) #3

W tablicy data jest multum innych danych. Tylko niektóre kolumny są liczbowe.

:edit:

O jak miło. Wystarczyło zmienić string [,] data na object [,] data i excel sam interpretuje dane. Nawet poprawnie rozpoznał format dat i taki ustawił. Tylko teraz jeszcze jedna kwestia. Czasami chcę żeby liczba była traktowana jako tekst bo zawiera np. rewizję 001 co jest zupełnie czymś innym niż samo 1.