ورود

View Full Version : ارسال اطلاعات از یک Dataset بهExcel و رسم نمودار



babak62
چهارشنبه 23 بهمن 1387, 14:09 عصر
امروز من برای ارسال اطلاعات از برنامه به Excel به مشکل برخوردم که متاسفانه با وجود مطرح کردن مشکلم درتالار،دوستان موفق به حل مشکلم نشدند.
من راه رو پیدا کردم و برای استفاده دیگر دوستان به صورت مقاله ارایه میکنم.امیدوارم که استفاده کنید.
این Sub یک dataset رو به عنوان پارامتر ورودی گرفته، در Excel وارد کرده و نمودار آنرا رسم میکند.


(PrivateSub BuildWorksheet(ByVal ds As DataSet
Dim dt As DataTable
'*****This Code Is Developed By Babak Abdollahi*****
'Create an instance of Excel , add a workbook,
'and let the user know what's happening
Dim xl AsNew Excel.Application
_=Dim oldCI As System.Globalization.CultureInfo
System.Threading.Thread.CurrentThread.CurrentCultu re
_=System.Threading.Thread.CurrentThread.CurrentCul ture
("New System.Globalization.CultureInfo("en-US
()xl.Workbooks.AddDim oSheet As Excel.Worksheet
oSheet = xl.ActiveSheet
xl.Visible = True
"...xl.Range("A1").Value = "Loading the DataSet


Try


xl.ScreenUpdating=false


'Start with the Test table


("dt = ds.Tables("Test


'Add the column headings for the Test


Dim dc As DataColumn


Dim iCols As Int32 = 0


ForEach dc In dt.Columns

xl.Range("A1").Offset(0, iCols).Value = dc.ColumnName

iCols += 1
Next
'Add the data
Dim iRows As Int32
For iRows = 0 To dt.Rows.Count - 1
_=xl.Range("A2").Offset(iRows).Resize(1, iCols).Value
()dt.Rows(iRows).ItemArray
Next
Catch ex As Exception
Finally
xl.ScreenUpdating=true





EndTry
'Make the sheet pretty
("With xl.ActiveSheet.Range("A1
()AutoFilter.
(AutoFormat(Excel.XlRangeAutoFormat.xlRangeAutoFor matSimple.
EndWith
' Add a Chart for the selected data.
Dim oResizeRange As Excel.Range
Dim oChart As Excel.Chart
(oResizeRange = oSheet.Range("E2:E6").Resize(ColumnSize:=1
oChart = oSheet.Parent.Charts.Add
xl = Nothing
EndSub


+توجه به نکات زیر لازم است:
الف)


Imports Microsoft.Office.Interop



ب)اضافه کردن



ADD Reference>Com>Microsoft Excel Library

در صورتی که مطلب مورد نظر برای شما مفید بود،لطفا تشکر بگذارید.:قلب: