PDA

View Full Version : سوال: مشکل در فراخوانی اطلاعات از اکسل و ریختن آن در دیتاگرید



forodo
سه شنبه 30 مهر 1392, 12:40 عصر
کد زیر رو نوشتم:

OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\qqq.xlsx;Extended Properties=Excel 8.0;");
OleDbDataAdapter da = new OleDbDataAdapter("select * from [sheetName$]", con);
con.Open();
System.Data.DataTable dt = new System.Data.DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;

ولی روی con.open(); این ایراد رو می گیره:

External table is not in the expected format.

چطور می تونم این مشکل رو رفع کنم؟

saied_max
سه شنبه 30 مهر 1392, 17:59 عصر
فکر نکنم با oleDb 4 بتونی پسوند xlsx را باز کنی ( به ورژنش نمیخوره) و این کانکشن بهتره

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;
Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";

اما اگه میخوای پسوند Xlsx را باز کنی از oleDb 12 استفاده کن

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;
Extended Properties="Excel 12.0 Xml;HDR=YES";

forodo
چهارشنبه 01 آبان 1392, 09:58 صبح
فکر نکنم با oleDb 4 بتونی پسوند xlsx را باز کنی ( به ورژنش نمیخوره) و این کانکشن بهتره

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;
Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";

اما اگه میخوای پسوند Xlsx را باز کنی از oleDb 12 استفاده کن

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;
Extended Properties="Excel 12.0 Xml;HDR=YES";

وقتی از اولی استفاده می کنم اررو زیر رو میده:

Could not find installable ISAM.

وقتی از دومی استفاده می کنم اررو زیر رو میده:

The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.

forodo
جمعه 03 آبان 1392, 19:21 عصر
به چه شکل میشه؟
اینو بگم که آفیس من 2010 هستش.
آیا در کانکشن باید تغییری ایجاد شود؟

saied_max
شنبه 04 آبان 1392, 21:55 عصر
ببین پسوند XLS ورژن قدیمی فایل های اکسل هستش و XLSX پسوند جدید اکسل 2007 و 2010 هستش به همین دلیل OLEDB4 نمیتونه باهاش کار کنه یا با OLEDB 12 کار کن یا از توی اکسل SAVE AS کن به 2003

saied_max
شنبه 04 آبان 1392, 22:00 عصر
همین طوری که نمیشه از OLEDB12 استفاده کرد باید نصب بشه وقتی که DATASOURCE رو تعریف می کنیم سیستم از SERVICE استفاده می کنه و ....

forodo
شنبه 04 آبان 1392, 22:26 عصر
به نظر من این کانکشنه درست نیست.
چون کدای دیگه که مشخصه.

forodo
دوشنبه 06 آبان 1392, 10:37 صبح
همین طوری که نمیشه از OLEDB12 استفاده کرد باید نصب بشه وقتی که DATASOURCE رو تعریف می کنیم سیستم از SERVICE استفاده می کنه و ....
چطور می تونم از OLEDB12 استفاده کنم؟
چی باید نصب بشه؟