PDA

View Full Version : باز کردن فایل xlsx (اکسل) در یک دیتاگرید



پرستو پارسایی
سه شنبه 18 آذر 1399, 14:32 عصر
با سلام چطور میتونم یک فایل xlsx اکسل رو ببرم تو یک دیتا گرید ممنون میشم دوستان در صورت اطلاع پاسخ دهید سپاسگزارم

the king
سه شنبه 18 آذر 1399, 15:35 عصر
با سلام چطور میتونم یک فایل xlsx اکسل رو ببرم تو یک دیتا گرید ممنون میشم دوستان در صورت اطلاع پاسخ دهید سپاسگزارم
152611

اگر از یک کمپوننت که فایل های Excel رو میخونه استفاده کنید (مثلا Aspose.Cells) که بر اساس راهنمای همون کمپوننت داده ازش می خونید و در DataGridView به شکلی که مایل هستید درج می کنید.
ولی اگر میخواهید مستقیما از Excel بصورت یک منبع داده استفاده کنید، Connection String مناسب اش رو بکار می برید.
مثلا با استفاده از Microsoft.ACE.OLEDB.12.0

Dim path = "D:\MyFolder\MyFile.xlsx"
Dim header = "YES"
Dim conString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & path & ";Extended Properties=""Excel 12.0 Xml;HDR=" & header & """"
Using connection = New OleDb.OleDbConnection(conString)
Using adaper = New OleDb.OleDbDataAdapter("Select * From [Sheet1$]", connection)
Dim dt = New DataTable()
adaper.Fill(dt)
DataGridView1.DataSource = dt
End Using
End Using

اون header مشخص می کنه که سطر اول برای مشخص کردن عنوان ستون ها است.
Microsoft ACE OLEDB هم نسخه 32 بیتی و هم نسخه 64 بیتی داره و هم در برنامه 32 بیتی و هم 64 بیتی قابل استفاده است.

یا مثلا با استفاده از Microsoft.Jet.OLEDB.4.0

Dim path = "D:\MyFolder\MyFile.xlsx"
Dim header = "YES"
Dim imex = "1"
Dim conString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path & ";Extended Properties=""Excel 8.0;HDR=" & header & ";IMEX=" & imex & """"
Using connection = New OleDb.OleDbConnection(conString)
Using adaper = New OleDb.OleDbDataAdapter("Select * From [Sheet1$]", connection)
Dim dt = New DataTable()
adaper.Fill(dt)
DataGridView1.DataSource = dt
End Using
End Using

اون header مشخص می کنه که سطر اول برای مشخص کردن عنوان ستون ها است.
اون imex مشخص می کنه که داده ستون هایی که نوع داده شون ثابت نیست و قاطی پاتی ئه بصورت متن خونده بشن.
برای استفاده از Microsoft Jet در تنظیمات پروژه (منوی Project گزینه projectName} Properties} زبانه Compile) نوع Target CPU رو x86 انتخاب کنید تا برنامه 32 بیتی ساخته بشه.
اینکار رو حتما انجام بدهید، چون Microsoft Jet نسخه 64 بیتی نداره و برنامه 64 بیتی نمیتونه از این ارتباط استفاده کنه.

پرستو پارسایی
سه شنبه 18 آذر 1399, 16:48 عصر
از پاسخ شما سپاسگزارم ولی متاسفانه یک ارور دریافت کردم در مورد فرمت فابل ممنون میشم راهنمایی بفرمایید

the king
سه شنبه 18 آذر 1399, 19:14 عصر
از پاسخ شما سپاسگزارم ولی متاسفانه یک ارور دریافت کردم در مورد فرمت فابل ممنون میشم راهنمایی بفرمایید

دلایل متعددی میتونه داشته باشه، فرضا اینکه نسخه Excel بالا است و با Excel 8.0 قابل باز شدن نیست :


Excel 8.0 (Excel 97)
Excel 9.0 (Excel 2000)
Excel 10.0 (Excel 2002)
Excel 11.0 (Excel 2003)
Excel 12.0 (Excel 2007)
Excel 14.0 (Excel 2010)
Excel 15.0 (Excel 2013)
Excel 16.0 (Excel 2016+)


یا در اصل یک فایل HTML ئه و پسوند واقعی اش HTML / HTM ئه و واقعا XLSX نیست.

یا اینکه فایل با رمز عبور محافظت شده.

پرستو پارسایی
سه شنبه 18 آذر 1399, 20:21 عصر
ممنونم ولی فایل مورد نظرم با مجموعه Office2010 _Excell براحتی باز میشه و اطلاعاتش قابل رویته و هیچ رمزی هم نداره .پسوند فایل هم
XLSX هست