View Full Version : سوال: export اطلاعات از excel به mysql
az.heidarzadeh
پنج شنبه 12 خرداد 1390, 10:56 صبح
سلام...
خواهش میکنم به خاطر این تاپیک دعوام نکنید:افسرده: بخدا از دیروز دارم میگردم اما هیچ کدی که کامل و بدرد بخور باشه برام پیدا نکردم و این درصورتیه که دیدم بعضی از دوستان این کارو انجام دادن و بینش به مشکل خوردن و از اون به بعدشو سوال کردن... اما من از اولش مشکل کلا نمیدونم باید چیکار کنم یه عده گفتند نرم افزارهای خاصی هست که بازم نگفته بودند مثل چی یا اینکه خود اکسل و mysql اینکارو میکنه اما بازم نگفتند چطوری؟!...
خواهش میکنم یکی یه جواب درست به من بده خیلی هم مهمه خیلی فوری هم لازمش دارم ترجیحا اگه یه نمونه برنامه php کوچولو باشه با بانک داده و فایل اکسلش بهتره :لبخند:...
خیلی ممنون
سعید صابری
جمعه 13 خرداد 1390, 14:30 عصر
نرم افزار مثل sqlyog یا ems sql manager for mysql و... که لازمه سرچ کوچولو توی گوگل بزنی برای پیدا کردنشون.به راحتی به اکسل، اکسس ، اس کیو ال و... export و import می کنند. خودشون نمونه کد هم در اختیارتون میزارن
imanamami
جمعه 13 خرداد 1390, 15:03 عصر
سلام دوست عزیز
این که اصلا کاری نداره.سرچم می کردی پیدا می شد. ولی خوب این کد رو من نوشم به شما هم می دهم.با این تیکه کد می توانید excel را به فایل دیگر تبدیل کنید.
private void btn_Open_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
LoadFile(dataGridView1, openFileDialog1.FileName, "Sheet1");
}
}
imanamami
جمعه 13 خرداد 1390, 15:03 عصر
private void LoadFile(DataGridView dg, string filename, string ssheet)
{
string cs = "";
if (System.IO.Path.GetExtension(filename) == ".xlsx")
{
cs = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename+ ";Extended Properties='Excel 12.0;'";
}
else
{
cs = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";Extended Properties='Excel 8.0;'";
}
try
{
OleDbConnection cn = new OleDbConnection(cs);
if (!System.IO.File.Exists(filename))
{
MessageBox.Show("Not Found!");
}
OleDbDataAdapter adapter = new OleDbDataAdapter("Select * From [" + ssheet + "$]", cs);
DataSet ds = new DataSet();
adapter.Fill(ds);
dg.DataSource = ds.Tables[0];
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
imanamami
جمعه 13 خرداد 1390, 15:05 عصر
امیدوارم این کد مشکل شمار را حل کرده باشد.
موفق باشید
Arsess
جمعه 20 خرداد 1390, 12:42 عصر
اول فایل اکسل رو csv. ذخیره کن بطوریکه با ; از هم جدا بشن. بعدا میتونی اینطوری توی پی اچ پی بخونیش
$File = 'data.csv';
$LinesArray = file($File);
$SentencesLinesNumber = count($LinesArray);
for ($i=0; $i<$SentencesLinesNumber; $i++) {
$WordsArray[$i] = explode(";",$LinesArray[$i]);
}
و بعد هم توی دیتابیس واردش کنی
b2omidifar
شنبه 28 خرداد 1390, 20:56 عصر
سلام ،اگه بخواییم اطلاعات توی اکسل رو بصورت انتخابی مثلا سطر A,C رو با پی اچ پی بریزیم توی mysql چیکار باید کنیم.
Arsess
شنبه 28 خرداد 1390, 23:46 عصر
خوب $WordsArray[$i][0] ستون A هست و $WordsArray[$i][2] ستون C
بریزشون هرجا میخوای
b2omidifar
یک شنبه 29 خرداد 1390, 23:17 عصر
مرسی از لطفتون،توی import کردن ازexcel به دیتابیس هم همین کار را باید انجام داد؟یا باید اول فایل رو با تابع fopen یا fread باز کرد و بعد این توابع رو نوشت؟
Arsess
دوشنبه 30 خرداد 1390, 11:56 صبح
دقیقا همینطوره
موفق باشی
b2omidifar
دوشنبه 30 خرداد 1390, 12:53 عصر
اشکال برنامه من تو چیه؟
<?php
$File =fopen("farvardin90.csv","r+");
$LinesArray =$File;
$SentencesLinesNumber = count($LinesArray);
for ($i=0; $i<$SentencesLinesNumber; $i++)
{
$WordsArray[$i] = explode(";",$LinesArray[$i]);
}
//echo "".$WordsArray[$i];
for($i=0;$i<10;$i++)
{
$a=WordsArray[$i][0];
$c=WordsArray[$i][2];
}
echo".$a.".".$c";
?>
Arsess
دوشنبه 30 خرداد 1390, 14:00 عصر
اینجا رو هم یه نگاهی بنداز
http://barnamenevis.org/showthread.php?292305-%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA-XML-%D8%B9%D8%B8%DB%8C%D9%85-%D8%A7%D8%B2-%D9%88%D8%A8-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3-%D9%88-import-%D8%A8%D9%87-MySQL-%D8%B8%D8%B1%D9%81-%D9%81%D9%82%D8%B7-%DA%86%D9%86%D8%AF-%D8%AB%D8%A7%D9%86%DB%8C%D9%87!&p=1285082#post1285082
Arsess
دوشنبه 30 خرداد 1390, 14:37 عصر
for($i=0;$i<10;$i++)
{
$a=WordsArray[$i][0];
$c=WordsArray[$i][2];
echo $a . "." . $c . ", ";
}
b2omidifar
دوشنبه 30 خرداد 1390, 19:29 عصر
مرسی از لطفتون،
منظور ازDataGridView dg توی کد زیر چیه؟این تابع توی php هم کاربرد داره؟
private void LoadFile(DataGridView dg, string filename, string ssheet){
Arsess
سه شنبه 31 خرداد 1390, 12:04 عصر
یه نگاه به لینکهای زیر بنداز
http://www.dreamincode.net/code/snippet4197.htm
http://www.dreamincode.net/forums/blog/506/entry-1667-php-datagridview-v-11/
اگه فایل اکسلت رو به صورت csv. ذخیره کنی، راهش رو توی تاپیک زیر نوشتم
http://barnamenevis.org/showthread.php?292305-%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA-XML-%D8%B9%D8%B8%DB%8C%D9%85-%D8%A7%D8%B2-%D9%88%D8%A8-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3-%D9%88-import-%D8%A8%D9%87-MySQL-%D8%B8%D8%B1%D9%81-%D9%81%D9%82%D8%B7-%DA%86%D9%86%D8%AF-%D8%AB%D8%A7%D9%86%DB%8C%D9%87!&p=1285082#
b2omidifar
سه شنبه 31 خرداد 1390, 15:02 عصر
مرسی از لطفتون واقعا نمیدونم چه جوری ازتون تشکر کنم،بازم ممنون.
Arsess
سه شنبه 31 خرداد 1390, 22:18 عصر
خواهش میکنم :خجالت:
mustafa13
شنبه 12 فروردین 1391, 14:49 عصر
سلام
این را من تست کردم جواب می دهد
<?php
$row = 1;
if (($handle = fopen("far.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}
?>
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.