ak47gglllk 发表于 2015-6-13 10:40:51

ListView写入到excel问题

        Local $excnum = _GUICtrlListView_GetItemCount($ListView)
        For $y = 0 To $excnum
                $excret = _GUICtrlListView_GetItemTextString($ListView, $y)
                $excarray = StringSplit($excret, "|")
                Local $text
                For $x = 1 To $excarray
                        $text = $text & $excarray[$x] & @TAB
                Next
                $text = $text & @CRLF
        Next
        Local $oAppl = _Excel_Open()
        Local $oWorkbook = _Excel_BookNew($oAppl)
        _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $text & @CRLF)这个样子,所有的内容都写入到A1里面了,希望实现1:1的写入,感谢

chzj589 发表于 2015-6-13 14:04:15

本帖最后由 chzj589 于 2015-6-15 22:54 编辑

回复 1# ak47gglllk
换个版本试试。
我用3.3.12.0以上版本编辑和你一样。用3.3.9.21版本就不会出现问题。

chzj589 发表于 2015-6-15 22:58:06

折腾了两天,还是没办法解决
只能以下的效果:

xms77 发表于 2015-6-16 00:00:56

回复 1# ak47gglllk
不知道是不是这样?
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <MsgBoxConstants.au3>
#include <Array.au3>
#include <Excel.au3>
Example()

Func Example()
        Local $aItem, $sText, $idListview
        GUICreate("ListView Get Item Text Array", 400, 300)
        $idListview = GUICtrlCreateListView("col1|col2|col3", 2, 2, 394, 268)
        GUICtrlCreateListViewItem("line1|data1|more1", $idListview)
        GUICtrlCreateListViewItem("line2|data2|more2", $idListview)
        GUICtrlCreateListViewItem("line3|data3|more3", $idListview)
        GUICtrlCreateListViewItem("line4|data4|more4", $idListview)
        GUICtrlCreateListViewItem("line5|data5|more5", $idListview)

        GUISetState(@SW_SHOW)
        Local $ListColumnCount = _GUICtrlListView_GetColumnCount($idListview)
        Local $ListRowCount = _GUICtrlListView_GetItemCount($idListview)
        Dim $ItemArray[$ListColumnCount]
        For $i = 0 To $ListRowCount - 1
                $aItem = _GUICtrlListView_GetItemTextString($idListview, $i)
                _ArrayAdd($ItemArray, $aItem, 0)
        Next
        _ArrayDelete($ItemArray, 0)
        ;_ArrayDisplay($ItemArray)
       
        Local $oAppl = _Excel_Open()
        Local $oWorkbook = _Excel_BookNew($oAppl)

        $oWorkbook.activesheet.cells(1, 1).resize($ListRowCount, $ListColumnCount) = $oWorkbook.application.transpose($ItemArray)
        ; Loop until the user exits.
        Do
        Until GUIGetMsg() = $GUI_EVENT_CLOSE
        GUIDelete()
EndFunc   ;==>Example

chzj589 发表于 2015-6-16 07:49:59

回复 4# xms77

谢谢分享!赞一个!

ak47gglllk 发表于 2015-6-16 08:56:40

回复 4# xms77


    恩,就是这个效果,感谢,非常感谢。学习了

ak47gglllk 发表于 2015-6-16 08:57:17

回复 3# chzj589


    感谢关注,谢谢

zhaoyun 发表于 2015-6-20 07:43:15

学习力。。。。。。。。。。。。。

mshuking 发表于 2015-6-21 12:15:38

学习一下   谢谢楼主们的分享    看下能不能用上
页: [1]
查看完整版本: ListView写入到excel问题