怎样实现选择多个ListView内的行导出EXCEL[已解决]
本帖最后由 清风飘飘 于 2011-8-25 18:33 编辑最近写数据库操作时遇到了一个问题,搜索到以前朋友的代码,可以实现导出整个ListView内的项目到Excel,我想改成选择单个或多个的导出,改了半夜代码也没有搞清楚,特来请教朋友们帮我改一下,最好能注释一下,英语不咋地,那帮助文档有些英文介绍看不太懂,金山词霸翻译的又不对头。谢谢啦!
别人的代码:#include <Excel.au3>
#include <Array.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <ListViewConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
Local $ListView, $Test = ["编号|姓名|QQ号码"]
$Form1 = GUICreate("Form1", 623, 444, 192, 124)
$ListView = GUICtrlCreateListView($Test, 40, 64, 530, 294)
GUICtrlCreateListViewItem('1|张三|65786315', $ListView)
GUICtrlCreateListViewItem('2|李四|56454688', $ListView)
GUICtrlCreateListViewItem('3|王五|86575765', $ListView)
GUICtrlCreateListViewItem('4|孙六|87654832', $ListView)
GUICtrlCreateListViewItem('5|赵七|96325478', $ListView)
GUICtrlCreateListViewItem('6|成八|64651873', $ListView)
GUICtrlCreateListViewItem('7|冯九|96437251', $ListView)
GUICtrlCreateListViewItem('8|钱十|64976835', $ListView)
$Button1 = GUICtrlCreateButton("导出Excel", 40, 384, 75, 25)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
new()
EndSwitch
WEnd
Func new()
Local $array
For $i = 0 To UBound($ListView) - 1
$Count = _GUICtrlListView_GetItemCount($ListView[$i])
_ArrayAdd($array, $Test[$i])
If $Count <> 0 Then
For $ii = 0 To $Count - 1
_ArrayAdd($array, _GUICtrlListView_GetItemTextString($ListView[$i], $ii))
Next
EndIf
Next
$excel = _ExcelBookNew(1);创建一个新的工作表并设置显示,(0=不可见, 1=可见)
For $i = 1 To UBound($array) - 1 ;返回数组维度的大小
$htest = StringSplit($array[$i], "|");以指定分隔符把字符串拆分成若干子串
For $ii = 0 To $htest
_ExcelWriteCell($excel, $htest[$ii], $i, $ii)
Next
Next
EndFunc
参考别人的代码已经解决:首先获取到选中的项目数量,然后循环获取每个选中的值,添加到数组,导入EXCEL即可。 ListView选中事件,有很过例子的。论坛里很多ListView操作都有这个! 各位坛友,我是新手 请大家多多关照小弟我啊 学习啦{:face (356):} 好源码,谢谢共享 請問怎麼會show:
Line 44
$excel = ExcelBookNew(1)
$excel = ^ ERROR
Error:Unknow function name 学习下,感谢,非常感谢 支持!!收藏!! 请问怎么导出时可以选择路径和输入文件名。如果文件名没有文件后缀名,自动添加后缀名。 正在寻找这个,研究一下
页:
[1]