Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Excel, Nieszczęsne polskie znaki...
Czesław
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 12.11.2009

Ostrzeżenie: (0%)
-----


Witam!! Mam na stronie link który ma przenosic mnie do grafiku pracy pracowników który jest zrobiony w Excelu. Cały plik wygląda dokładnie tak:

  1.  
  2. <?
  3.  
  4. require_once 'excel_reader2.php';
  5.  
  6. $xls = new Spreadsheet_Excel_Reader();
  7.  
  8. $xls->setUTFEncoder('iconv');
  9.  
  10. $xls->setOutputEncoding('UTF-8');
  11.  
  12. $xls->read('grafik.xls');
  13.  
  14.  
  15.  
  16. ?>
  17. <html>
  18.  
  19.  
  20. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  21.  
  22.  
  23.  
  24. <style>
  25.  
  26. table.excel {
  27.  
  28. border-style:ridge;
  29.  
  30. border-width:1;
  31.  
  32. border-collapse:collapse;
  33.  
  34. font-family:sans-serif;
  35.  
  36. font-size:12px;
  37.  
  38. }
  39.  
  40. table.excel thead th, table.excel tbody th {
  41.  
  42. background:#CCCCCC;
  43.  
  44. border-style:ridge;
  45.  
  46. border-width:1;
  47.  
  48. text-align: center;
  49.  
  50. vertical-align:bottom;
  51.  
  52. }
  53.  
  54. table.excel tbody th {
  55.  
  56. text-align:center;
  57.  
  58. width:20px;
  59.  
  60. }
  61.  
  62. table.excel tbody td {
  63.  
  64. vertical-align:bottom;
  65.  
  66. }
  67.  
  68. table.excel tbody td {
  69.  
  70. padding: 0 3px;
  71.  
  72. border: 1px solid #EEEEEE;
  73.  
  74. }
  75.  
  76. </style>
  77.  
  78. </head>
  79.  
  80.  
  81.  
  82. <body>
  83.  
  84. <?php echo $xls->dump(true,true); ?>
  85.  
  86. </body>
  87.  
  88. </html>


Może mi ktoś podpowiedziec dlaczego nie wyświetla mi polskich znaków tylko jakieś dziwne krzaczki?? Czytałem kilka tematów na forum i wszędzie piszę że trzeba zmienic kodowanie na UTF-8 , tutaj jest to niby zrobione a nadal nie działa...

Jeżeli to coś zmienia to grafik był pisany w Excel'u XP.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
darophp
post
Post #2





Grupa: Zarejestrowani
Postów: 309
Pomógł: 20
Dołączył: 13.02.2010
Skąd: Kęty

Ostrzeżenie: (0%)
-----


Na ISO-8859-2 spróbuj, bo to zależy od serwera.


--------------------
Fotografia, projektowanie stron WWW | web-coding.pl - HTML 5 i CSS 3 - już w krótce ;)
Go to the top of the page
+Quote Post
Czesław
post
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 12.11.2009

Ostrzeżenie: (0%)
-----


  1. require_once 'excel_reader2.php';
  2.  
  3. $xls = new Spreadsheet_Excel_Reader();
  4.  
  5. $xls->setOutputEncoding('ISO-8859-2');
  6.  
  7. $xls->read('example.xls');


Zmieniłem i nic nie dało. Jakieś inne pomysły??
Go to the top of the page
+Quote Post
raf30al
post
Post #4





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 4.02.2009

Ostrzeżenie: (0%)
-----


<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
To tez zmień
Go to the top of the page
+Quote Post
Czesław
post
Post #5





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 12.11.2009

Ostrzeżenie: (0%)
-----


Zmieniłem i nadal nic, wyczytałem jeszcze że w pliku excel_reader2.php można spróbowac zmienic linię z wartością $val na taką:
  1. $val = htmlentities($val, ENT_NOQUOTES, 'ISO-8859-2');


Ale to też nie pomogło i dodatkowo dostałem komunikat: Warning: htmlentities() [function.htmlentities]: charset `ISO-8859-2' not supported, assuming iso-8859-1

Wyprzedzając pytanie wpisałem iso-8859-1 tam i na stronie ale też nie pomogło.

Macie jakiś sposób questionmark.gif Mi chodzi tylko i wyłącznie o to żeby po naciśnięciu przycisku grafik pracy odpaliła się stronka na której wyrzuci mi zawartośc pliku Excel, nie ma tam byc żadnej oprawy graficznej itp tylko ta tabelka...

Po zmianach kod wygląda tak:
  1. <?
  2.  
  3. require_once 'excel_reader2.php';
  4.  
  5. $xls = new Spreadsheet_Excel_Reader();
  6.  
  7. $xls->setOutputEncoding('ISO-8859-2');
  8.  
  9. $xls->read('grafik.xls');
  10.  
  11.  
  12.  
  13. ?>
  14. <html>
  15.  
  16.  
  17. <meta http-equiv="Content-Type" content="text/html; charset= ISO-8859-2" />
  18.  
  19.  
  20.  
  21. <style>
  22.  
  23. table.excel {
  24.  
  25. border-style:ridge;
  26.  
  27. border-width:1;
  28.  
  29. border-collapse:collapse;
  30.  
  31. font-family:sans-serif;
  32.  
  33. font-size:12px;
  34.  
  35. }
  36.  
  37. table.excel thead th, table.excel tbody th {
  38.  
  39. background:#CCCCCC;
  40.  
  41. border-style:ridge;
  42.  
  43. border-width:1;
  44.  
  45. text-align: center;
  46.  
  47. vertical-align:bottom;
  48.  
  49. }
  50.  
  51. table.excel tbody th {
  52.  
  53. text-align:center;
  54.  
  55. width:20px;
  56.  
  57. }
  58.  
  59. table.excel tbody td {
  60.  
  61. vertical-align:bottom;
  62.  
  63. }
  64.  
  65. table.excel tbody td {
  66.  
  67. padding: 0 3px;
  68.  
  69. border: 1px solid #EEEEEE;
  70.  
  71. }
  72.  
  73. </style>
  74.  
  75. </head>
  76.  
  77.  
  78.  
  79. <body>
  80.  
  81. <?php echo $xls->dump(true,true); ?>
  82.  
  83. </body>
  84.  
  85. </html>


Jeżeli chodzi o serwer to ja używam WebServ'a i wszystko na tej stronie odpalam jako localhost. A ten excel_reader to wersja 2.1 czyli niby najnowsza.
Go to the top of the page
+Quote Post
Pilsener
post
Post #6





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Jak tworzysz plik .xls to logiczne, że musi on mieć kodowanie windows, dlatego krzaki przed wstawieniem do excela należy przekonwertować, niestety funkcje konwertujące słabo sobie radzą z windows ale jest rada i na to:
  1. $nazwa = strtr($nazwa,'ˇ&brvbar;&not;&plusmn;&para;Ľ', 'ĄŚŹąśź');
- taki kod zmienia polskie krzaki w ISO na windows i odwrotnie ( np. znak &para; na ś), a z ISO na UTF już bardzo prosto zmienić.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 15:03