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
در صورتی که مطلب مورد نظر برای شما مفید بود،لطفا تشکر بگذارید.:قلب:
من راه رو پیدا کردم و برای استفاده دیگر دوستان به صورت مقاله ارایه میکنم.امیدوارم که استفاده کنید.
این 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
در صورتی که مطلب مورد نظر برای شما مفید بود،لطفا تشکر بگذارید.:قلب: