pyzonet Posted January 23, 2011 Posted January 23, 2011 Export Listview to Excel & Print!expandcollapse popup;############################### ;# Author: Pyzonet # ;############################### #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <GuiListView.au3> #include <Excel.au3> #NoTrayIcon Local $style = BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT) Local $msg GUICreate("Export Listview to Excel & Print!",500,500); CREATE GUI $lv = GUICtrlCreateListView("",0,0,500,450) _GUICtrlListView_SetExtendedListViewStyle(-1,$style) _GUICtrlListView_SetSelectedColumn(-1, 0) $export = GUICtrlCreateButton("EXPORT TO EXCEL",20,460,120,30) $exit = GUICtrlCreateButton("EXIT",360,460,120,30) colanditems() GUISetState(@SW_SHOW) While 1 Select Case $msg = $export exporttoexcel() Case $msg = $exit Exit EndSelect $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Then ExitLoop WEnd GUIDelete() Func colanditems(); CREATE COLUMNS, ITEMS AND SUBITEMS For $x = 1 to 9 _GUICtrlListView_InsertColumn($lv,$x,"Col " & $x, 100) _GUICtrlListView_AddItem($lv, "Row " & $x & " item " & $x) For $x2 = 1 to 10 _GUICtrlListView_AddSubItem($lv, $x2 - 2, "subitem 1", 1) _GUICtrlListView_AddSubItem($lv, $x2 - 2, "subitem 2", 2) _GUICtrlListView_AddSubItem($lv, $x2 - 2, "subitem 3", 3) _GUICtrlListView_AddSubItem($lv, $x2 - 2, "subitem 4", 4) _GUICtrlListView_AddSubItem($lv, $x2 - 2, "subitem 5", 5) _GUICtrlListView_AddSubItem($lv, $x2 - 2, "subitem 6", 6) _GUICtrlListView_AddSubItem($lv, $x2 - 2, "subitem 7", 7) _GUICtrlListView_AddSubItem($lv, $x2 - 2, "subitem 8", 8) Next Next EndFunc Func exporttoexcel();EXPORT TO EXCEL $col = 9 $count = _GUICtrlListView_GetItemCount($lv) GUICtrlSetState($export,$gui_disable) $excel = _ExcelBookNew() For $colexcel = 1 To $col _ExcelWriteCell($excel,"Col " & $colexcel,1,$colexcel) $i = 0 do _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($lv,$i,0),2 + $i,1) _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($lv,$i,1),2 + $i,2) _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($lv,$i,2),2 + $i,3) _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($lv,$i,3),2 + $i,4) _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($lv,$i,4),2 + $i,5) _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($lv,$i,5),2 + $i,6) _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($lv,$i,6),2 + $i,7) _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($lv,$i,7),2 + $i,8) _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($lv,$i,8),2 + $i,9) $i = $i + 1 Until $i = $count Next $ask = MsgBox(4,"Message","Export completed!" & @cr & @cr & "Do you want to print it now?") if $ask = 6 Then Send("^p") EndIf EndFuncNote: It's just an example! Do not expecting more than this!export listview to excel.au3
erikkn Posted March 7, 2014 Posted March 7, 2014 It's very nice, thank you! I got a question about your script: is it possible to make a nice layout, with colors and more of that?
water Posted March 7, 2014 Posted March 7, 2014 Depending on the size of the ListView performance might be an issue. I suggest to try my rewrite of the Excel UDF. It's about 20 to 100 times faster when filling data into a worksheet. And it has a function to print worksheets, ranges etc. so no need to automate the Excel GUI using Send. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
antonioj84 Posted November 9, 2017 Posted November 9, 2017 expandcollapse popup;The export to excel is not happening I added the appropriate nam change, the scripts run but it not exporting to excel, any assistance willbe great ;############################### ;# Author: Pyzonet # ;############################### #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <GuiListView.au3> #include <Excel.au3> #NoTrayIcon Local $style = BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT) Local $msg GUICreate("Export Listview !",500,500); CREATE GUI $lv = GUICtrlCreateListView("",0,0,500,450) _GUICtrlListView_SetExtendedListViewStyle(-1,$style) _GUICtrlListView_SetSelectedColumn(-1, 0) $export = GUICtrlCreateButton("EXPORT TO EXCEL",20,460,120,30) $exit = GUICtrlCreateButton("EXIT",360,460,120,30) colanditems() GUISetState(@SW_SHOW) While 1 Select Case $msg = $export exporttoexcel() Case $msg = $exit Exit EndSelect $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Then ExitLoop WEnd GUIDelete() Func colanditems(); CREATE COLUMNS, ITEMS AND SUBITEMS For $x = 1 to 9 _GUICtrlListView_InsertColumn($lv,$x,"Col " & $x, 100) _GUICtrlListView_AddItem($lv, "Row " & $x & " item " & $x) For $x2 = 1 to 10 _GUICtrlListView_AddSubItem($lv, $x2 - 2, "subitem 1", 1) _GUICtrlListView_AddSubItem($lv, $x2 - 2, "subitem 2", 2) _GUICtrlListView_AddSubItem($lv, $x2 - 2, "subitem 3", 3) _GUICtrlListView_AddSubItem($lv, $x2 - 2, "subitem 4", 4) _GUICtrlListView_AddSubItem($lv, $x2 - 2, "subitem 5", 5) _GUICtrlListView_AddSubItem($lv, $x2 - 2, "subitem 6", 6) _GUICtrlListView_AddSubItem($lv, $x2 - 2, "subitem 7", 7) _GUICtrlListView_AddSubItem($lv, $x2 - 2, "subitem 8", 8) Next Next EndFunc Func exporttoexcel();EXPORT TO EXCEL $col = 9 $count = _GUICtrlListView_GetItemCount($lv) GUICtrlSetState($export,$gui_disable) $excel = _Excel_BookNew($lv) For $colexcel = 1 To $col _Excel_RangeWrite($excel,"Col " & $colexcel,1,$colexcel) $i = 0 do _Excel_RangeWrite($excel, _GUICtrlListView_GetItemText($lv,$i,0),2 + $i,1) _Excel_RangeWrite($excel, _GUICtrlListView_GetItemText($lv,$i,1),2 + $i,2) _Excel_RangeWrite($excel, _GUICtrlListView_GetItemText($lv,$i,2),2 + $i,3) _Excel_RangeWrite($excel, _GUICtrlListView_GetItemText($lv,$i,3),2 + $i,4) _Excel_RangeWrite($excel, _GUICtrlListView_GetItemText($lv,$i,4),2 + $i,5) _Excel_RangeWrite($excel, _GUICtrlListView_GetItemText($lv,$i,5),2 + $i,6) _Excel_RangeWrite($excel, _GUICtrlListView_GetItemText($lv,$i,6),2 + $i,7) _Excel_RangeWrite($excel, _GUICtrlListView_GetItemText($lv,$i,7),2 + $i,8) _Excel_RangeWrite($excel, _GUICtrlListView_GetItemText($lv,$i,8),2 + $i,9) $i = $i + 1 Until $i = $count Next $ask = MsgBox(4,"Message","Export completed!" & @cr & @cr & "Do you want to print it now?") if $ask = 6 Then Send("^p") EndIf EndFunc
water Posted November 9, 2017 Posted November 9, 2017 You need to add some error checking to your script. What is the value of @error after calling a function? My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
antonioj84 Posted November 9, 2017 Posted November 9, 2017 Func exporttoexcel();EXPORT TO EXCEL $col = 9 $count = _GUICtrlListView_GetItemCount($lv) GUICtrlSetState($export,$gui_disable) $excel = _Excel_BookNew($lv) if @error Then MsgBox(0,'error', @error) ; this retun 1 For $colexcel = 1 To $col _Excel_RangeWrite($excel,"Col " & $colexcel,1,$colexcel) $i = 0 do _Excel_RangeWrite($excel, _GUICtrlListView_GetItemText($lv,$i,0),2 + $i,1) _Excel_RangeWrite($excel, _GUICtrlListView_GetItemText($lv,$i,1),2 + $i,2) _Excel_RangeWrite($excel, _GUICtrlListView_GetItemText($lv,$i,2),2 + $i,3) _Excel_RangeWrite($excel, _GUICtrlListView_GetItemText($lv,$i,3),2 + $i,4) _Excel_RangeWrite($excel, _GUICtrlListView_GetItemText($lv,$i,4),2 + $i,5) _Excel_RangeWrite($excel, _GUICtrlListView_GetItemText($lv,$i,5),2 + $i,6) _Excel_RangeWrite($excel, _GUICtrlListView_GetItemText($lv,$i,6),2 + $i,7) _Excel_RangeWrite($excel, _GUICtrlListView_GetItemText($lv,$i,7),2 + $i,8) _Excel_RangeWrite($excel, _GUICtrlListView_GetItemText($lv,$i,8),2 + $i,9) $i = $i + 1 Until $i = $count Next
water Posted November 9, 2017 Posted November 9, 2017 @error = 1 is described in the help file ;-) My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now