[PHP] Eksport do Excela - formatowanie komorek

0

Pewien skrypt zrzuca baze danych do Excela. Jedno z pól ("data") ma format "Y-m-d". Plik XLS otwieram pozniej u siebie na dysku i co widze? Komorki zawierajace te daty wypelnione sa znakami "#". Podobnie np. z polem zawierajacym numer telefonu komorkowego (9-cio cyfrowa liczba). Excel zamienia np. "888888888" na "8,89E+08". Dopiero jak sformatuje te komorki recznie, to pojawiaja sie wlasciwe wartosci.

W jaki sposob mozna formatowac poszczegolne komorki juz podczas zrzucania informacji do pliku Excela?

0

postaw znak ' przed stringiem

0

No dobry patent, ale nie do konca o to mi chodzilo. Takie rozwiazanie zmienia wartosc stringa, a ja pytam jak zmienic format komorki juz podczas zrzucania do Excela. Da sie w ogole?

0

a w jaki sposób dokonujesz eksportu. jest to eksport do pliku xls czy csv??

0

Do XLS.

0

używasz do tego jakiejś klasy?
może daj jakieś źródło

0

Spoko, to wyglada mniej wiecej tak (wklejam fragment - dane sciaga z bazy danych jak widac):

header("Content-Type: application/text; charset=win1250");
header("Content-Disposition: attachment; filename=plik.xls");
echo "\nTelefon\tData\n";
while ($arr = mysql_fetch_array($res)) {
  while (list($k, $v) = each($arr))  {
    $arr[$k] = strtr($v, 'ĄĆĘŁŃÓŚŹŻąćęłńóśźż', 'ĽĆĘŁŃÓŚŹŻšćęłńóśźż');
  }
  extract($arr);
  echo "$telefon\t$data\n";
}
0

ciekawe
ale nie znam i nie widziałem nigdzie specyfikacji pliku xls, jednak sugerując się microsoftową technologią może to jest podobnie jak w przypadku rtfa??
może na początku trzeba zdefiniować odpowiednie znaczniki z odpowiedim formatowaniem a później w kodzie ich po prostu użyć
jak znajdę trochę czasu to pokombinuję i dam znać jak coś znajdę

0

Rozumuje podobnie, ale tez nie wiem jakby to mialo wygladac. Tez bede jeszcze szukal. Proponuje wzajemnie sie poinformowac jesli cos znajdziemy ;)

0

swoją drogą faktycznie byłoby łatwiej zapisać to jako stringi, chyba że ma to być poddane późniejszej obróbce

0

Obawiam sie, ze nie rozumiem. W obecnej postaci dane te nie sa stringami? (nie mam na mysli skapych majtek)

0
stringman napisał(a)

postaw znak ' przed stringiem

i to by rozwiązało problem ale jeśli chcesz później np dodawać przez arkusz zawartość komórek to faktycznie to nie jest dobre wyjście.

Excel nie ma czasem jakichś funkcji doformatowania dancyh coś w stylu format(łańcuch formatujący, dane1, dane2, ...);
bo tak można by to rozwiązać chyba co?

pewny co do tego nie jestem bo z excela rzadko korzystam

0

Zainteresuj się biblioteka pear'a Spreadsheet_Excel_Writer.

0

Nie no, fajna sprawa. Pokombinuje sobie z tym na localhoscie, ale ta biblioteka nie zawsze jest niestety zainstalowana na jakims tam serwerze, wiec dobrze by bylo znac inne rozwiazanie jednak.

0

To możesz sobie dodać do projektu. Nie musi być na include_path.

0

O? No to bomba - dzieki [!!!] Chyba wlasnie o to mi chodzilo :>

0

Qp3k - jedna sprawa jeśli chodzi o dotychczasową metodą Twoją - to zapisuje do pliku XLS, ale spójrz na źródło i porównaj z normalnym arkuszem Excela. Widać różnicę? A więc wygląda to tak, że zapisujesz to jako zwykły plik tekstowy tzw. "tab separated", czyli z kolumnami separowanymi tabulacjami. I na tym koniec. Excel to otwiera i zamienia na arkusz, ale tam żadnego formatowania (z definicji) być nie może. Rozszerzenie dodaje XLS i tyle tego Excela w tym pliku było :]

0

Masz slusznosc, Adamie 8-|
No bede kombinowal dalej, dzieki.

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