Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] import excel
ravikw
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 10.10.2007

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


Mam poniższy kod który wyświetla mi zawartość plików excela...ale nie mam zielonego pojęcia jak go przerobić aby można było poszczególne komórki zaimportować do bazy mysql. Poproszę o jakąś sugestię



  1. <?
  2.  
  3. require_once 'Excel/reader.php';
  4. $xls = new Spreadsheet_Excel_Reader();
  5. $xls->setOutputEncoding('cp1250');
  6. $xls->read('prowizje/mix.xls');
  7. $xls->sheets[0];
  8. //liczba wierszy
  9. $xls->sheets[0]['numRows'];
  10. //liczba kolumn
  11. $xls->sheets[0]['numCols'];
  12. //komórki
  13. $xls->sheets[0]['cells'];
  14. //komórka o adresie [3;7]
  15. $xls->sheets[0]['cells'][3][7];
  16.  
  17. echo"<table cellSpacing=\"0\" borderColorDark=\"white\" cellPadding=\"1\" align=\"top\" background: \"#CCCCCC\"
  18. borderColorLight=\"#aaaaaa\" border=\"1\" > ";
  19. echo"<tr>";
  20.  
  21. for ($i = 1; $i <= $xls->sheets[0] ['numRows']; $i++)
  22. {
  23. for ($j = 1; $j <= $xls->sheets[0] ['numCols']; $j++) {
  24.  
  25. echo"<td>";
  26.  
  27.  
  28. echo $xls->sheets[0]['cells'][$i][$j] . ' ';
  29. echo"</td>";
  30.  
  31. }
  32. echo"</tr>";
  33. }
  34. echo "</table>";
  35. ?>
  36.  



Myślę że muszę się uporać jakoś z tym fragmentem:

  1. echo $xls->sheets[0]['cells'][$i][$j] . ' ';


tylko jak (IMG:style_emoticons/default/questionmark.gif) ?

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Wiesz, że arkusz jest zbudowany z wierszy i rzędów komórek, więc: jedziesz po każdym arkuszu i dla każdego rows pobierasz cols w pętli i dalej $rows++; Zresztą kod, który jeździ po komórkach dla pierwszego arkusza jest w liniach 21-34, teraz pomyśl jak to można zapisać do bazy.
Go to the top of the page
+Quote Post
ravikw
post
Post #3





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 10.10.2007

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


Udało mi się przerobić ten kod na coś takiego :

  1. <?
  2. include 'conf.php';
  3.  
  4. echo '<form enctype="multipart/form-data" method="post" action="excel_test.php">
  5. <input type="file" size="32" name="plik_upload" value="wwwwww">
  6. <input type="submit" name="Wy&para;lij" value="Wy&para;lij">
  7. </form>';
  8.  
  9.  
  10. if( isset($_FILES['plik_upload']) ) {
  11.  
  12. $f = $_FILES['plik_upload'];
  13. IF($f['type'] == 'application/ms-excel')
  14. {
  15. $x = getimagesize($f['tmp_name']);
  16. IF(!is_array($x) or $x[0] < 2)
  17. {
  18. die('Zły plik ');
  19. }
  20. $patch = str_replace('excel_test.php', '', $_SERVER['SCRIPT_FILENAME']);
  21. copy($f['tmp_name'], $patch.$f['name']);
  22. }
  23.  
  24.  
  25.  
  26. require_once 'Excel/reader.php';
  27. $xls = new Spreadsheet_Excel_Reader();
  28. $xls->setOutputEncoding('cp1250');
  29. $xls->read($f['tmp_name']);
  30. $xls->sheets[0];
  31. //liczba wierszy
  32. $xls->sheets[0]['numRows'];
  33. //liczba kolumn
  34. $xls->sheets[0]['numCols'];
  35. //komórki
  36. $xls->sheets[0]['cells'];
  37. //komórka o adresie [3;7]
  38. $xls->sheets[0]['cells'][3][7];
  39.  
  40. for ($i = 1; $i <= $xls->sheets[0]['numRows']; $i++) {
  41. /*
  42. for ($j = 1; $j <= $xls->sheets[0]['numCols']; $j++) {
  43. echo """.$xls->sheets[0]['cells'][$i][$j]."",";
  44. }
  45. echo "n";
  46. */
  47.  
  48. $sql = "INSERT INTO tel_mix VALUES('".
  49. $xls->sheets[0]['cells'][$i][1]."','".
  50. $xls->sheets[0]['cells'][$i][2]."','".
  51. $xls->sheets[0]['cells'][$i][3]."','".
  52. $xls->sheets[0]['cells'][$i][4]."','".
  53. $xls->sheets[0]['cells'][$i][5]."','".
  54. $xls->sheets[0]['cells'][$i][6]."','".
  55. $xls->sheets[0]['cells'][$i][7]."','".
  56. $xls->sheets[0]['cells'][$i][8]."','".
  57. $xls->sheets[0]['cells'][$i][9]."','".
  58. $xls->sheets[0]['cells'][$i][10]."')";
  59.  
  60. $rezultat = mysql_query($sql, $polacz) or die(mysql_error()); }
  61.  
  62.  
  63. if($rezultat) {
  64. echo "Dane wczytane !!!";
  65. }
  66. else{
  67. echo"Brak możliwo&para;ci wprowadzenia danych !!!";
  68.  
  69. }
  70.  
  71. }
  72. ?>


.....teraz się zastanawiam jak zrobić aby skrypt pomijał pierwszy wiersz w którym są nagłówki tabeli (pomijajac opcje edytowania pliku excela)(IMG:style_emoticons/default/questionmark.gif)

Ten post edytował ravikw 20.03.2010, 10:08:08
Go to the top of the page
+Quote Post
darko
post
Post #4





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


warunek if($i != 1) $sql = "INSERT ...
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 18:14