PDA

View Full Version : خوندن از Excel (فوري)



Mainar
دوشنبه 16 آذر 1388, 11:31 صبح
سلام.
من ميخوام اطلاعات يك فايل Excel رو بخونم و تو يه فرم نمايش بدم و بعد از اينكه كاربر تغييرات مورد نظرشو روي اون اطلاعات انجام داد فايل اكسل با تغييرات جديد با فرمت قبليش(اكسل) ذخيره بشه.
لطفا راهنماييم كنيد چطور اين فايل رو بخونم و بعد ذخيرش كنم.
ممنون.

sarbazi
دوشنبه 16 آذر 1388, 11:43 صبح
این سوال من هم هست میشه جواب بدین لطفا

ASKaffash
دوشنبه 16 آذر 1388, 11:51 صبح
سلام
از طریق ADO به اکسل هم میتوانید وصل شوید و درون DataGridView نمایش و اگر خواستید Edit نیز کنید

Mainar
دوشنبه 16 آذر 1388, 13:20 عصر
ميشه لطفا كد خوندن و نوشتنشو واسم بذارين؟

Afshin160
دوشنبه 16 آذر 1388, 13:25 عصر
سلام ...
اين پوست ها را نگاه كن حتما" جواب ميگيري ...نمونه كد هم موجود هست :!

http://barnamenevis.org/forum/showthread.php?t=165068

http://barnamenevis.org/forum/showthread.php?t=163404

http://support.microsoft.com/kb/306397

http://barnamenevis.org/forum/showthread.php?t=117695

راستي يادم رفت هرگز از Ado استفاده نكنيد چون مانند اكسس نيست و خيلي از چيزها مثل update را ساپورت نمي كنه .كار با خود اكسس گريه آوره واي به حال excel بهتر يه فايل اكسلي بسازي تا اينكه از ADO استفاده كني و البته براحتي هم مي توني از يه فايل اكسلي ديگه اطلاعات را بخواني



موفق باشيد....:چشمک:

Mainar
دوشنبه 16 آذر 1388, 14:18 عصر
using Microsoft.Office.Interop;
using Microsoft.Office.Interop.Excel;
من اين دوتا كلاس رو Add كردم وليExcelFile رو نميشناسه.چه كلاساي ديگه اي بايد add كنم؟

Afshin160
دوشنبه 16 آذر 1388, 15:18 عصر
براي احتياط اينها هم اضافه كن :


using Microsoft.Office.Interop.Excel;
using Microsoft.Office.Interop;
using Microsoft.Office.Core;
using System.Runtime.InteropServices; // For COMException
using System.Reflection; // For Missing.Value and BindingFlags
using System.Diagnostics; // to ensure EXCEL process is really killed
using interop = System.Runtime.InteropServices;

Mainar
سه شنبه 17 آذر 1388, 07:04 صبح
روي 3 تا كلاس اولي خطا ميگيره.نميدونم مشكل كجاست!:ناراحت::گریه:

miadpouyanfar
سه شنبه 17 آذر 1388, 08:23 صبح
حتماً باید office باشه . ببین نصب کردی یا نه!

Mainar
سه شنبه 17 آذر 1388, 09:00 صبح
آره نصبه.:افسرده:

Afshin160
سه شنبه 17 آذر 1388, 11:24 صبح
بابا دوست عزيز اين چه جور سوال كردن شما فقط ميگيد من مشكل دارم نمي تونم نشد شد و..... عزيزم شما با نگاه كردن به چند تا پست خواهيد ديد هركي مشكل داره مشكلشو به صورت دقيق مينويسه يا error شو اينجا مي گذاره و....
كامل توضيح بديد كه حداقل اگه كسي خواست پاسخ بده بتونه كمكتون كنه

Mainar
چهارشنبه 18 آذر 1388, 10:53 صبح
وا!چرا دعوا ميكني دوست عزيز!:افسرده::گریه:
مشكل نشناختن كلاسا حل شد.الآن Errorش اينه كه
ExcelFileرو نميشناسه.باوجود Add كردن تمام كلاسا.

اين كديه كه استفاده كردم.
ExcelFile ef = new ExcelFile();
DataTable dataTable = (DataTable)dataGrid1.DataSource;
// Depending on the format of the input file, you need to change this:
dataTable.Columns.Add("FirstName", typeof(string));
dataTable.Columns.Add("LastName", typeof(string));
// Load Excel file.
ef.LoadXls("FileName.xls");
// Select the first worksheet from the file.
ExcelWorksheet ws = ef.Worksheets[0];
// Extract the data from the worksheet to the DataTable (DataGrid).
// Data is extracted starting at first row and first column for 10 rows or until the first empty row appears.
ws.ExtractToDataTable(dataTable, 10, ExtractDataOptions.StopAtFirstEmptyRow, ws.Rows[0], ws.Columns[0]);
// Change the value of the first cell in the DataTable (DataGrid).
dataTable.Rows[0][0] = "Hello world!";
// Insert the data from DataTable to the worksheet starting at cell "A1".
ws.InsertDataTable(dataTable, "A1", true);
// Save the file to XLS format.
ef.SaveXls("DataGrid.xls");


مشكلم با اين روش حل نشد و چون عجله داشتم از Ado استفاده كردم و جواب گرفتم.ممنون.

ahrimaneahurai
پنج شنبه 19 آذر 1388, 09:19 صبح
سلام دوست عزیز
فکر کنم باید بری dll های اکسل رو از توی فایل های آفیس پیدا کنی تو refrence هات add کنی
منم قبلا این مشکل رو داشتم این کارو کردم حل شد
راستی اگه تو refrenceهات بود پاک کن بعد دوباره add کن