Mark Twain

"Sail away from the safe harbor. Catch the trade winds in your sails. Explore. Dream. Discover."

Alanınız ne olursa olsun kullanılan verilerin Microsoft Office Programları ile taşınması günümüzde çok olağan bir durum. Zaman zaman çeşitli departmanlar farklı dosyaları sizlere gönderip bunların içerisindeki verinin düzenlenmiş olarak web ortamında paylaşılmasını isteyebilirler.

Bu yazıda Excel verilerini nasıl kullanacağımızı ve bunları mysql’e nasıl kaydedeceğimizi göreceğiz.

Excel

<?
/*
Dışarıdan URL içerisinde veya başka şekilde
değişkenlerimiz değiştirilmesin diye
veritabanına bağlanırken kullanacağımız
değişkenleri sabit olarak tanımlıyoruz.
*/
define(db_host, "localhost");
define(db_user, "root");
define(db_pass, "");
define(db_link, mysql_connect(db_host, db_user,
db_pass));
define(db_name, "test");
mysql_select_db(db_name);
/* Excel adında bir obje oluşturuyoruz. */
$excel = new COM("Excel.Application") or
die("Excel could not be started");
/* Eğer açılacak Excel dosyasında bulunan
veri büyükse hata dönmesin diye
max_execution_time'ı sadece bu oturum için
120 olarak değiştiriyoruz. */
ini_set('max_execution_time','120');
/* Excel dosyasının işletim sisteminde
açılmasını engellemek
için visible değerini sıfır olarak atıyoruz. */
$excel -> Visible = 0;
/* Excel tarafından oluşacak bir hatanın
kullanıcıya görüntülenmemesini istiyoruz. */
$excel -> DisplayAlerts = 0;
/* userlist.xls dosyasını açıp çalışacağımız
worksheet'i belirliyoruz. */
$data = $excel -> Workbooks -> Open
("C:\userlist.xls");
$Sheets = $data -> Worksheets(1);
/* Cells isimli fonksiyona ilk
parametresinde hangi satırı,
ikincisinde ise hangi sütunu okuyacağını
döngülerle atıyoruz. */
for($i = 3; $i <= 5; $i++){
for($x = 1; $x <= 3; $x++){
$Cell = $Sheets -> Cells($i, $x);
$Cell -> activate;
switch($x){
case 1; $name = $Cell -> value; break;
case 2; $username = $Cell -> value; break;
case 3; $country = $Cell -> value; break;
}
}
/* En başta mysql'e bağlanıp ilgili
veritabanını seçmiştik.
Şimdi ise members tablosuna excelden
aldığımız kullanıcı bilgilerini giriyoruz. */
$SQL = mysql_query("INSERT INTO
members VALUES(NULL, '$name', '$username',
'$country')");
}
/* Excel'i kapatıyoruz... */
$excel -> Quit();
?>

Yazıyı Paylaş:

Bu yaziyi paylasin.
  • Digg
  • del.icio.us
  • 100puan
  • Technorati
  • Limk
  • Bagcik
  • Tusul
  • Oyyla
  • Yumiyum
  • Reddit.tr

Toplam 7 yorum var

  1. cok tesekkur ederım faydalı bı dokuman daha denemedım ama deneyecegım

    aytac

  2. denemedim ama çok faydalı olacağını düşünüyorum,,,
    teşekkürler

    erdinç

  3. harika bi yazı kesinlikle, çok teşekkür ediyorum kardeş.

    mavili

  4. Merhaba,tam aradığım şeydi ama yapamadım,bende hata da vermiyor ama bir türlü olmuyor neden acaba?

    Gürkan

  5. çok güzel bir yazı oldukça faydalı oldu. yalnız bir sorum oalcak : windows tabanlı işletim sistemlerinde gayet güzel çalışıyor localhost ta kullandım ama serverıma atınca (linux) “Cannot instantiate non-existent class: com in… ” diye hata veriyor. linux de xls dosylarını açamadığından dolayı oalbilirmi … nasıl yapabilriz bu işlemi ?=

    Teşşekkrler.

    alp

  6. çok merak ettiğim bir konuydu, o kadar da zor değilmiş..

    bundan sonra ameleliğe son :)

    subeler

  7. Diğer bir yöntem dosyanızı CSV ( Comma delimited) oalrak export edip ( yada save as CVS excel üzerinden) daha sonra aşağıdaki sql kodunu çalıştırmak :
    load data local infile ‘D:\\data.cvs’
    into table `DB_ADI`.`TABLO_ADI`
    fields escaped by ‘\\’ enclosed by ‘;’ terminated by ” lines terminated by ‘\r\n’ (`id`, `alan_1`, `alan_2`, `alan_n`)

    saygılar..

    Murat KAYA

Yorum yazın