PDA

View Full Version : سوال: ایمپورت اکسل به mysql با کد php



plang_1160
یک شنبه 29 اسفند 1389, 23:10 عصر
با سلام خدمت دوستان عزیز چگونه می توانم یه فایل اکسل را با دستورات php به mysql اضافه کنم .
ممنون می شم از جواب شما...

$ M 3 H R D A D $
یک شنبه 29 اسفند 1389, 23:27 عصر
من باری اتصال به اکسس یک باراز این تکه کد استفاده کردم
و چون تونستم به تک تک فیلد ها دسترسی داشته باشم پس میتونی همین اطلاعات و به فیلد همزادش تو اسکیول انتتقال بدی نباید برات سخت باشه کمک خواستی دوباره بپرس


<?php
/*
<?php
// Microsoft SQL Server using the SQL Native Client 10.0 ODBC Driver - allows connection to SQL 7, 2000, 2005 and 2008
$connection = odbc_connect("Driver={SQL Server Native Client 10.0};Server=$server;Database=$database;", $user, $password);

// Microsoft Access
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename", $user, $password);

// Microsoft Excel
$excelFile = realpath('C:/ExcelData.xls');
$excelDir = dirname($excelFile);
$connection = odbc_connect("Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=$excelFile;DefaultDir=$e xcelDir" , '', '');
?>

*/



$db = realpath(dirname(__FILE__)).'\db1.mdb';

$db_connection = new COM("ADODB.Connection", NULL, 1251);
$db_connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$db";
$db_connection->open($db_connstr);
$conn=odbc_connect($db_connstr,'','');

$rs=odbc_exec($conn,"select * from table1");

$nbrow=0;
?>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" >
<table align='center' dir='rtl' border='1' >
<tr> <td>firstname<td><td>lastname</td></tr>
<?php
while( odbc_fetch_row( $rs ))
{
echo "<tr>";
$nbrow++;
$fname= iconv("windows-1256", "UTF-8", odbc_result($rs,'fname'));
$lname= iconv("windows-1256", "UTF-8",odbc_result($rs,'lname'));

echo "<td>".$fname."</td>";
echo "<td>".$lname."</td>";
echo "</tr>";
}
?>
</table>
<?php
odbc_close($conn);
exit();

?>

رضا قربانی
دوشنبه 01 فروردین 1390, 12:02 عصر
داش مهرداد =======> دوستمون فایل اکسل رو می خواد ، این چیز که شما دادید پسوندش mdb هست و این مربوط به اکسز هست

امیـرحسین
دوشنبه 01 فروردین 1390, 13:06 عصر
احتمالا کلاس و اسکریپت واسه این کارا هست ولی راهی که من به ذهنم میرسه و راه قابل کنترلی هم هست اینه که فایل اکسل رو به فرمت XML تبدیل کنید (Save as XML) و این فایل رو با فراخ بال، حضور قلب و لحظه‌هایی آکنده از شادی و سرور توسط PHP پردازش کنید.

$ M 3 H R D A D $
دوشنبه 01 فروردین 1390, 22:56 عصر
من شرمندم اشتباه از من بود فکر کردم اکسز میخوان تو نت نمونه د های زیادی برای حل مشکل شما هست

$ M 3 H R D A D $
چهارشنبه 03 فروردین 1390, 22:12 عصر
تشکر فراموش نشه


<?php

$dbhost = 'localhost'; // در اين قسمت محل ديتابيس را مشخص مي کنيم که معمولا همان لوکال هاست مي باشد
$dbname = 'online'; // در اين قسمت نام ديتابيس را قرار دهيد
$dbuser = 'root'; // در اين قسمت نام کاربر ديتابيس را قرار دهيد
$dbpass = ''; // در اين قسمت پسورد ديتابيس را وارد کنيد
mysql_connect($dbhost, $dbuser, $dbpass) or die(mysql_error()); //با اين کد به ديتابيس کانکت مي شويم
mysql_select_db($dbname) or die(mysql_error()); //با اين کد ديتابيس مورد نظر را انتخاب مي کنيم
$result = mysql_query('select * from useronline'); // در اين قسمت کوئري را بنويسيد

//در اين قسمت عمليات مربوطه به گرفتن خروجي Exel

$count = mysql_num_fields($result);

for ($i = 0; $i < $count; $i++){

@$header .= mysql_field_name($result, $i)."\t";

}

while($row = mysql_fetch_row($result))

{

$line = '';
foreach($row as $value)

{

if(!isset($value) || $value == "")

{

$value = "\t";

}else

{

$value = str_replace('"', '""', $value);
$value = '"' . $value . '"' . "\t";

}

$line .= $value;

}

@$data .= trim($line)."\n";

}


$data = str_replace("\r", "", $data);
if ($data == "")
{

$data = "\nno matching records found\n";

}
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=excelfile.xls");
header("Pragma: no-cache");
header("Expires: 0");

echo $header."\n".$data;

?>

shakhsi
چهارشنبه 24 خرداد 1391, 22:53 عصر
salam dooste gerami be darkoob444.blogfa.com ye sar bezan moshkelet hal mishe

AMIBCT
چهارشنبه 24 خرداد 1391, 23:27 عصر
دوست عزیز $ M 3 H R D A D $

مطلبی که شما در پست آخر نوشته‌اید مربوط است به خروجی Excel نه ورودی Excel
به علاوه ایجاد فایل Excel به این روش غیراستاندارد است
در حقیقت شما یک فایل CSV ایجاد کرده‌اید و پسوند آن را XLS قرار داده‌اید

--------

برای ایجاد و خواندن فایل Excel دو راه وجود دارد
اول روشی که در ابتدای تاپیک هست( توسط دوست گرامی $ M 3 H R D A D $ )
یعنی استفاده از رابط ODBC مربوط به Excel که این روش فقط در ویندوز قابل اجرا است و آن هم به شرطی که مجموعه‌ی آفیس روی سیستم نصب باشد
به علاوه تنظیمات امنیتی برای انجام این کار نیز نباید محدودیتی ایجاد کنند
با توجه به اینکه بیشتر میزبان‌های php در لینوکس خدمت‌رسانی می‌کنند این روش تقریبا غیرقابل استفاده است

روش دوم استفاده از کتابخانه‌ی PHPExcel است
این کتابخانه کار ایجاد و خواندن فایل Excel را به خوبی انجام می‌دهد و به ویژگی‌های خاصی هم در سرور نیاز ندارد
تنها مشکل موجود این است که باید کمی وقت بگذارید و مستندات پروژه را مطالعه کنید

به طور کلی فایل Excel فرمت مناسبی برای دریافت اطلاعات به حساب نمی‌آید
فرمت‌های متداول برای دریافت ورودی که در تمامی سیستم‌عامل‌ها و ابزارها پذیرفته هستند
عبارتند از CSV و XML

محیط وب تفاوت‌هایی با محیط ویندوز دارد و برای برنامه‌نویسی باید خود را با این محیط سازگار کنید

iner30
پنج شنبه 25 خرداد 1391, 13:36 عصر
الان برای اینکه یک فایل اکسل رو ایمپورت کنیم و داخل پایگاه داده ثبت بشه آخر باید چیکار کنیم؟
منم نیاز پیدا کردم

AMIBCT
جمعه 26 خرداد 1391, 00:16 صبح
سیستم شما فقط قابلیت ارسال پست دارد یا پست‌هایی که قبلا هم نوشته شده را نشان می‌دهد؟

shakhsi
شنبه 27 خرداد 1391, 09:00 صبح
سلام دوست گرامي من اين كارو كردم و فايل اكسل رو كه حاوي ديتاي فارسي بود در بانك ماي اسكيوال ذخيره كردم اگه خواستين ميتونم كمكتون كنم.darkoob444.blogfa.com