PDA

View Full Version : گفتگو: نشان دادن اطلاعات از SQL در اکسل



mina.net
یک شنبه 17 خرداد 1388, 13:00 عصر
سلام دوستان
من می خوام مقادیری رو از دیتا گرید یا sql بخونم و در اکسل به کاربر نمایش بدم. چکار باید بکنم.
در ضمن چرا سیستم من EXCEL.DLL رو نداره. در حالی که اکسل نصب هم هست. باید بگم من با افیس 2003 و VS2005 کار می کنم.

البته من هدفم فقط نمایش بدون تاخیر به کاربر هست و معمولا کاربر اهتیاجی به سیو کردن ندارد و اگر هم خواست می تونه بعد از مشاهده سیو کنه.

من یک مطلبی رو تو کد پروجکت دیدم به نظرم جالب بود . از ابزارهای خاصی استفاده شده بود خودم که چیزی سر در نیاوردم. لینکش رو می زارم دوستان با تجربه تر ببین و برای ما هم توضیح بدن.
http://www.codeproject.com/KB/vb/exp...setoexcel.aspx (http://www.codeproject.com/KB/vb/exportdatabasetoexcel.aspx)

mina.net
دوشنبه 18 خرداد 1388, 22:58 عصر
سلام دوستان
دوستان لطفا کمک کنید. من تو برنامه ام حتما باید از این روش استفاده کنم. می دونم یک مقدار شاید کمتر کار شده ولی من لینک دادم تا نمونه ببینید. لطفا کمک کنید خوم هر چه تلاش کردم به نتیجه نرسیدم.

mina.net
سه شنبه 19 خرداد 1388, 22:17 عصر
سلام دوستان
این چندتا لینک رو هم ببینید شاید تونستید به من کمک کنید. خودم که سر در نیاوردم.

http://support.microsoft.com/kb/301982
http://support.microsoft.com/kb/247412
http://support.microsoft.com/kb/306125

mina.net
پنج شنبه 21 خرداد 1388, 18:16 عصر
یعنی کسی نمی تونه کمک کنه.

محمدامین شریفی
پنج شنبه 21 خرداد 1388, 19:18 عصر
ببخشید که وقت ندارم لینک ها رو بخونم،ولی چون قبلا من اینکار رو کردم به شما هم کمک می کنم.
اول از همه با Ado.net اطلاعات را از sql واکشی کنید.دوم طریقه ایجاد و ویرایش اکسل را در ویبی یاد بگیرید.برای اینکار با جستجوی create+excel+vb می توانید روش add کردن DLL آفیس به فرم و سپس ایجاد کردن فیلد های اکسل و سپس باز کردن فرم را یاد بگیرید.برای درست کردن یک اکسل ساده در سی شارپ، 4 خط کد بیشتر لازم نیست.سوم،شما باید اطلاعاتی را که با ado درست کردی را در سمت vb بوسیله کد نویسی به فایل اکسل ات اظافه کنی.

----------------

بعد از این کارها،شما می توانید فایل اکسل را در VS فراخوانی کنید،که در نتیجه MS Excel اجرا می شود.
دوست من،کار سختی نیست و به ترتیب مراحلی را که گفتم اجرا کن.خیلی بخواد کارت طول بکشه 3 ساعت است.
رفیق اینجا (http://barnamenevis.org/forum/attachment.php?attachmentid=20071&d=1215464809)را ببین.


پیروز باشید.

mina.net
شنبه 23 خرداد 1388, 21:17 عصر
دوست عزیز این راههای که شما گفتید رو آزمایش کردم جواب نداد.
فکر کنم اون pdf که گذاشتید مال VB6 باشه.
در همون ابتدا کار خطا می ده.

mehrnoosh_al62
دوشنبه 25 خرداد 1388, 11:18 صبح
Public Sub ExportWithOutOffice(ByVal Path As String)
Dim grid As New System.Web.UI.WebControls.DataGrid()
grid.HeaderStyle.Font.Bold = True
grid.BackColor = Color.Blue
grid.DataSource = [Source]
grid.DataBind()
' render the DataGrid control to a file
Using sw As New StreamWriter(Path)
Using hw As New HtmlTextWriter(sw)
grid.RenderControl(hw)
End Using
End Using
MessageBox.Show("تبدیل فایل انجام شد")
End Sub
با این تابع برای تبدیل نیازی به نصب Office نداری

mehrnoosh_al62
دوشنبه 25 خرداد 1388, 11:26 صبح
در ضمن در مورد پیامی که فرستادین ...
این خطا زمانی رخ میده که فایل DLL شما با ورژن آفیس همخونی نداشته باشه... البته ممکنه در صورت همخونی هم همچین اروری بده چون من خودم هم همچین مشکلی داشتم دلیلشم متوجه نشدم ولی با تابع زیر حل شد...

'در ابتداي برنامه براي درست كامپايل شدن برنامه هاي آفيس زبان كامپيوتر بايد انگليسي شود
Dim oldCI As System.Globalization.CultureInfo
Private Sub Change_Language_To_English()
oldCI = System.Threading.Thread.CurrentThread.CurrentCultu re
System.Threading.Thread.CurrentThread.CurrentCultu re = _
New System.Globalization.CultureInfo("en-US")
End Sub
در هنگام لود فرم تابع فوق رو فراخونی کنید و در رویداد FormClosed کد زیر رو قرار بدین...

'براي دست نخوردن تنظيمات سيستم عامل بعد از بسته شدن برنامه تنظينات زبان را برميگردانيم
System.Threading.Thread.CurrentThread.CurrentCultu re = oldCI