[已解决]如何每次寫入資料到 excel 時, 可以一直往下寫, 不要蓋掉原本的檔案?
本帖最后由 ipmitool 于 2017-2-14 15:46 编辑如何每次寫入資料到 excel 時, 可以一直往下寫, 不要蓋掉原本的檔案?Func exporttoexcel();EXPORT TO EXCEL
$col = 0
$count = _GUICtrlListView_GetItemCount($ListView2)
GUICtrlSetState($export,$gui_enable)
$excel = _ExcelBookNew()
$oWorkbook = _Excel_BookNew($excel)
_ExcelWriteCell($excel,"名稱",2,2)
_ExcelWriteCell($excel,"數量",2,3)
_ExcelWriteCell($excel,"金額",2,4)
_ExcelWriteCell($excel,"總金額",2,5)
_ExcelWriteCell($excel," ",2,6)
_ExcelWriteCell($excel," ",2,7)
_ExcelWriteCell($excel," ",2,8)
_ExcelWriteCell($excel," ",2,9)
_ExcelWriteCell($excel," ",2,10)
_ExcelWriteCell($excel," ",2,11)
_ExcelWriteCell($excel," ",2,12)
_ExcelWriteCell($excel," ",2,13)
_ExcelWriteCell($excel," ",2,14)
_ExcelWriteCell($excel," ",2,15)
_ExcelWriteCell($excel," ",2,16)
_ExcelWriteCell($excel," ",2,17)
For $colexcel = 0 To $col
$i = 0
do
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,0),3 + $i,2)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,1),3 + $i,3)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,2),3 + $i,4)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,3),3 + $i,5)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,4),3 + $i,6)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,5),3 + $i,7)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,6),3 + $i,8)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,7),3 + $i,9)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,8),3 + $i,10)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,9),3 + $i,11)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,10),3 + $i,12)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,11),3 + $i,13)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,12),3 + $i,14)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,13),3 + $i,15)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,14),3 + $i,16)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,15),3 + $i,17)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,16),3 + $i,18)
$i = $i + 1
Until $i = $count
Next
_ExcelWriteCell($excel, $totalPrice,2 + $i,5) ;總金額
;MsgBox(64,"Message","Export completed!" & @CRLF _
; & " "& @CRLF _
; & "Output excel file on your Desktop!",2)
DirCreate(@ScriptDir & "\Excel")
_Excel_BookSaveAs($oWorkbook, @ScriptDir & "\Excel\"& @YEAR & @MON & @MDAY & ".xlsx", Default,True)
_Excel_Close($excel,True,True)
EndFunc
Func _ExcelBookNew($fVisible = 0)
Local $oExcel = ObjCreate("Excel.Application")
If NOT IsObj($oExcel) Then Return SetError(1, 0, 0)
If NOT IsNumber($fVisible) Then Return SetError(2, 0, 0)
If $fVisible > 1 Then $fVisible = 1
If $fVisible < 0 Then $fVisible = 0
With $oExcel
.Visible = $fVisible
.WorkBooks.Add
.ActiveWorkbook.Sheets(1).Select()
EndWith
Return $oExcel
EndFunc ;==>_ExcelBookNew
Func _ExcelWriteCell($oExcel, $sValue, $sRangeOrRow, $iColumn = 1)
If NOT IsObj($oExcel) Then Return SetError(1, 0, 0)
If NOT StringRegExp($sRangeOrRow, "", 0) Then
If $sRangeOrRow < 1 Then Return SetError(2, 0, 0)
If $iColumn < 1 Then Return SetError(2, 1, 0)
$oExcel.Activesheet.Cells($sRangeOrRow, $iColumn).Value = $sValue
Return 1
Else
$oExcel.Activesheet.Range($sRangeOrRow).Value = $sValue
Return 1
EndIf
EndFunc ;==>_ExcelWriteCell
回复 1# ipmitool
記住 上次寫入到哪一行不就好了 回复 2# kk_lee69
哥, 人家不會弄嘛... 不好意思, 請問有人有招嗎? 謝謝喔 这.....就算没有办法记住上次的位置,难道不可以先读出原有数据, 拼接到现在的数据前,然后再一起写进去吗? 这.....就算没有办法记住上次的位置,难道不可以先读出原有数据, 拼接到现在的数据前,然后再一起写进去吗? 回复 6# Alam
源碼是這樣的, 現在每匯出一筆都是單獨的 excel file, 想要一天的單據記錄成一筆就好
然後, 列印的部分想要只列印 listview2 就好了, 這樣可以辦到嗎...#NoTrayIcon
#RequireAdmin
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=..\ICO1.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GUIConstants.au3>
#include <GUIListView.au3>
#include <Array.au3>
#include <GuiEdit.au3>
#include <GuiMenu.au3>
#include <MsgBoxConstants.au3>
#include <File.au3>
#include <FontConstants.au3>
#include <Excel.au3>
#include <ScreenCapture.au3>
HotKeySet('{esc}', '_Exit')
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("艾利珮珮義大利麵", 835, 950, -1, -1)
; 1 ###########################################################################################
GUICtrlCreateGroup("番茄紅醬系列",15,15,258,190)
$ListView1 = GUICtrlCreateListView("ID|名稱|價錢", 28, 35, 230, 157)
GUICtrlCreateListViewItem("1|番茄肉醬 麵|65", $ListView1)
GUICtrlCreateListViewItem("2|番茄鮮蔬(可素)麵|65", $ListView1)
GUICtrlCreateListViewItem("3|番茄培根 麵|75", $ListView1)
GUICtrlCreateListViewItem("4|番茄雞肉 麵|75", $ListView1)
GUICtrlCreateListViewItem("5|番茄蛤蜊 麵|85", $ListView1)
GUICtrlCreateListViewItem("6|番茄海鮮 麵|105", $ListView1)
GUICtrlCreateListViewItem("7|番茄肉醬 飯|65", $ListView1)
GUICtrlCreateListViewItem("8|番茄鮮蔬(可素)飯|65", $ListView1)
GUICtrlCreateListViewItem("9|番茄培根 飯|75", $ListView1)
GUICtrlCreateListViewItem("10|番茄雞肉 飯|75", $ListView1)
GUICtrlCreateListViewItem("11|番茄蛤蜊 飯|85", $ListView1)
GUICtrlCreateListViewItem("12|番茄海鮮 飯|105", $ListView1)
;###############################################################################################
; 1K ###########################################################################################
GUICtrlCreateGroup("羅勒青醬系列",15,230,258,190)
$ListView1K = GUICtrlCreateListView("ID|名稱|價錢", 28, 250, 230, 157)
GUICtrlCreateListViewItem("1|青醬鮮蔬 麵|65", $ListView1K)
GUICtrlCreateListViewItem("2|青醬培根 麵|75", $ListView1K)
GUICtrlCreateListViewItem("3|青醬雞肉 麵|75", $ListView1K)
GUICtrlCreateListViewItem("4|青醬蛤蜊 麵|85", $ListView1K)
GUICtrlCreateListViewItem("5|青醬海鮮 麵|110", $ListView1K)
GUICtrlCreateListViewItem("6|青醬鮮蔬 飯|65", $ListView1K)
GUICtrlCreateListViewItem("7|青醬培根 飯|75", $ListView1K)
GUICtrlCreateListViewItem("8|青醬雞肉 飯|75", $ListView1K)
GUICtrlCreateListViewItem("9|青醬蛤蜊 飯|85", $ListView1K)
GUICtrlCreateListViewItem("10|青醬海鮮 飯|110", $ListView1K)
;###############################################################################################
; 2K ###########################################################################################
GUICtrlCreateGroup("粉紅醬系列",285,15,258,190)
$ListView2K = GUICtrlCreateListView("ID|名稱|價錢", 300, 35, 230, 157)
GUICtrlCreateListViewItem("1|粉紅肉醬 麵|70", $ListView2K)
GUICtrlCreateListViewItem("2|粉紅鮮蔬 麵|70", $ListView2K)
GUICtrlCreateListViewItem("3|粉紅培根 麵|85", $ListView2K)
GUICtrlCreateListViewItem("4|粉紅雞肉 麵|85", $ListView2K)
GUICtrlCreateListViewItem("5|粉紅蛤蜊 麵|90", $ListView2K)
GUICtrlCreateListViewItem("6|粉紅海鮮 麵|115", $ListView2K)
GUICtrlCreateListViewItem("7|粉紅肉醬 飯|70", $ListView2K)
GUICtrlCreateListViewItem("8|粉紅鮮蔬 飯|70", $ListView2K)
GUICtrlCreateListViewItem("9|粉紅培根 飯|85", $ListView2K)
GUICtrlCreateListViewItem("10|粉紅雞肉 飯|85", $ListView2K)
GUICtrlCreateListViewItem("11|粉紅蛤蜊 飯|90", $ListView2K)
GUICtrlCreateListViewItem("12|粉紅海鮮 飯|115", $ListView2K)
;###############################################################################################
; 3K ###########################################################################################
GUICtrlCreateGroup("奶油白醬系列",285,230,258,190)
$ListView3K = GUICtrlCreateListView("ID|名稱|價錢", 300, 250, 230, 157)
GUICtrlCreateListViewItem("1|白醬鮮蔬(可奶素) 麵|65", $ListView3K)
GUICtrlCreateListViewItem("2|白醬培根 麵|75", $ListView3K)
GUICtrlCreateListViewItem("3|白醬雞肉 麵|75", $ListView3K)
GUICtrlCreateListViewItem("4|白醬蛤蜊 麵|85", $ListView3K)
GUICtrlCreateListViewItem("5|白醬海鮮 麵|110", $ListView3K)
GUICtrlCreateListViewItem("6|白醬鮮蔬(可奶素) 飯|65", $ListView3K)
GUICtrlCreateListViewItem("7|白醬培根 飯|75", $ListView3K)
GUICtrlCreateListViewItem("8|白醬雞肉 飯|75", $ListView3K)
GUICtrlCreateListViewItem("9|白醬蛤蜊 飯|85", $ListView3K)
GUICtrlCreateListViewItem("10|白醬海鮮 飯|110", $ListView3K)
;###############################################################################################
; 4K ###########################################################################################
GUICtrlCreateGroup("清炒蒜香系列",15,440,258,190)
$ListView4K = GUICtrlCreateListView("ID|名稱|價錢", 28, 460, 230, 157)
GUICtrlCreateListViewItem("1|蒜香鮮蔬 麵|55", $ListView4K)
GUICtrlCreateListViewItem("2|蒜香培根 麵|65", $ListView4K)
GUICtrlCreateListViewItem("3|蒜香雞肉 麵|65", $ListView4K)
GUICtrlCreateListViewItem("4|蒜香蛤蜊 麵|75", $ListView4K)
GUICtrlCreateListViewItem("5|蒜香海鮮 麵|90", $ListView4K)
;###############################################################################################
; 5K ###########################################################################################
GUICtrlCreateGroup("中西混搭系列",285,440,258,90)
$ListView5K = GUICtrlCreateListView("ID|名稱|價錢", 300, 460, 230, 57)
GUICtrlCreateListViewItem("1|泰式酸辣海鮮湯麵|95", $ListView5K)
;###############################################################################################
; 6K ###########################################################################################
GUICtrlCreateGroup("湯品",285,540,258,90)
$ListView6K = GUICtrlCreateListView("ID|名稱|價錢", 300, 560, 230, 57)
GUICtrlCreateListViewItem("1|玉米濃湯|25", $ListView6K)
;###############################################################################################
; 7K ###########################################################################################
GUICtrlCreateGroup("加購區",555,15,258,190)
$ListView7K = GUICtrlCreateListView("ID|名稱|價錢", 568, 38, 230, 154)
GUICtrlCreateListViewItem("1|加飯/麵(半碗100g)|10", $ListView7K)
GUICtrlCreateListViewItem("2|加飯/麵(一碗200g)|20", $ListView7K)
GUICtrlCreateListViewItem("3|加青花菜|10", $ListView7K)
GUICtrlCreateListViewItem("4|加起司片|10", $ListView7K)
GUICtrlCreateListViewItem("5|玉米濃湯|20", $ListView7K)
;###############################################################################################
$LineA2=GUICtrlCreateLabel("=====================================================================================================================================", 12,635,900,50)
GUICtrlSetColor($LineA2, 0xDDCCDD)
;###########################################################################################
$Label6 = GUICtrlCreateLabel("名稱", 45, 660, 40, 17)
$Input5 = GUICtrlCreateInput("", 80, 655, 120, 21)
$Label9 = GUICtrlCreateLabel("價錢", 45, 690, 40, 17)
$Input8 = GUICtrlCreateInput("", 80, 685, 120, 21)
$Label11 = GUICtrlCreateLabel("數量", 45, 720, 28, 17)
$Input10 = _GUICtrlEdit_Create($Form1, "", 80, 715, 120, 21, $ES_NUMBER)
$Button2 = GUICtrlCreateButton("確定", 45, 750, 155, 25, $BS_DEFPUSHBUTTON)
$clear = GUICtrlCreateButton("下一筆", 45, 780, 155, 60)
;###########################################################################################
$export = GUICtrlCreateButton("匯出", 230, 785, 60, 25)
$print = GUICtrlCreateButton("列印", 230, 813, 60, 25)
$export_all = GUICtrlCreateButton("匯出+列印", 295, 785, 90, 53)
GUICtrlCreateLabel("總金額: ", 600,790,100,50)
GUICtrlCreateLabel("序號: ", 450,790,30,50)
$ListView2 = GUICtrlCreateListView("名稱 |數量 |價錢 ", 230, 657, 570, 120)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Global Enum $idOpen = 1000, $idSave, $idInfo
Global $hCMenu = GUICtrlCreateContextMenu($ListView2)
Global $hCMenuText1 = GUICtrlCreateMenuItem("Delete", $hCMenu)
;GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
GUIRegisterMsg($WM_NOTIFY, "WM_Notify_Events")
$OrderID="1"
$cowbe0=GUICtrlCreateLabel($OrderID, 485,766,100,80)
GUICtrlSetFont($cowbe0,40,$FW_NORMAL,$GUI_FONTUNDER,"Comic Sans MS")
GUICtrlCreatePic(@ScriptDir&"\ldF01.jpg", 15, 840, 800, 105)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $clear
; 1 ###########################################################################################
_GUICtrlListView_DeleteAllItems($ListView1)
GUICtrlCreateListViewItem("1|番茄肉醬 麵|65", $ListView1)
GUICtrlCreateListViewItem("2|番茄鮮蔬(可素)麵|65", $ListView1)
GUICtrlCreateListViewItem("3|番茄培根 麵|75", $ListView1)
GUICtrlCreateListViewItem("4|番茄雞肉 麵|75", $ListView1)
GUICtrlCreateListViewItem("5|番茄蛤蜊 麵|85", $ListView1)
GUICtrlCreateListViewItem("6|番茄海鮮 麵|105", $ListView1)
GUICtrlCreateListViewItem("7|番茄肉醬 飯|65", $ListView1)
GUICtrlCreateListViewItem("8|番茄鮮蔬(可素)飯|65", $ListView1)
GUICtrlCreateListViewItem("9|番茄培根 飯|75", $ListView1)
GUICtrlCreateListViewItem("10|番茄雞肉 飯|75", $ListView1)
GUICtrlCreateListViewItem("11|番茄蛤蜊 飯|85", $ListView1)
GUICtrlCreateListViewItem("12|番茄海鮮 飯|105", $ListView1)
;###############################################################################################
; 1K ###########################################################################################
_GUICtrlListView_DeleteAllItems($ListView1K)
GUICtrlCreateListViewItem("1|青醬鮮蔬 麵|65", $ListView1K)
GUICtrlCreateListViewItem("2|青醬培根 麵|75", $ListView1K)
GUICtrlCreateListViewItem("3|青醬雞肉 麵|75", $ListView1K)
GUICtrlCreateListViewItem("4|青醬蛤蜊 麵|85", $ListView1K)
GUICtrlCreateListViewItem("5|青醬海鮮 麵|110", $ListView1K)
GUICtrlCreateListViewItem("6|青醬鮮蔬 飯|65", $ListView1K)
GUICtrlCreateListViewItem("7|青醬培根 飯|75", $ListView1K)
GUICtrlCreateListViewItem("8|青醬雞肉 飯|75", $ListView1K)
GUICtrlCreateListViewItem("9|青醬蛤蜊 飯|85", $ListView1K)
GUICtrlCreateListViewItem("10|青醬海鮮 飯|110", $ListView1K)
;###############################################################################################
; 2K ###########################################################################################
_GUICtrlListView_DeleteAllItems($ListView2K)
GUICtrlCreateListViewItem("1|粉紅肉醬 麵|70", $ListView2K)
GUICtrlCreateListViewItem("2|粉紅鮮蔬 麵|70", $ListView2K)
GUICtrlCreateListViewItem("3|粉紅培根 麵|85", $ListView2K)
GUICtrlCreateListViewItem("4|粉紅雞肉 麵|85", $ListView2K)
GUICtrlCreateListViewItem("5|粉紅蛤蜊 麵|90", $ListView2K)
GUICtrlCreateListViewItem("6|粉紅海鮮 麵|115", $ListView2K)
GUICtrlCreateListViewItem("7|粉紅肉醬 飯|70", $ListView2K)
GUICtrlCreateListViewItem("8|粉紅鮮蔬 飯|70", $ListView2K)
GUICtrlCreateListViewItem("9|粉紅培根 飯|85", $ListView2K)
GUICtrlCreateListViewItem("10|粉紅雞肉 飯|85", $ListView2K)
GUICtrlCreateListViewItem("11|粉紅蛤蜊 飯|90", $ListView2K)
GUICtrlCreateListViewItem("12|粉紅海鮮 飯|115", $ListView2K)
;###############################################################################################
; 3K ###########################################################################################
_GUICtrlListView_DeleteAllItems($ListView3K)
GUICtrlCreateListViewItem("1|白醬鮮蔬(可奶素) 麵|65", $ListView3K)
GUICtrlCreateListViewItem("2|白醬培根 麵|75", $ListView3K)
GUICtrlCreateListViewItem("3|白醬雞肉 麵|75", $ListView3K)
GUICtrlCreateListViewItem("4|白醬蛤蜊 麵|85", $ListView3K)
GUICtrlCreateListViewItem("5|白醬海鮮 麵|110", $ListView3K)
GUICtrlCreateListViewItem("6|白醬鮮蔬(可奶素) 飯|65", $ListView3K)
GUICtrlCreateListViewItem("7|白醬培根 飯|75", $ListView3K)
GUICtrlCreateListViewItem("8|白醬雞肉 飯|75", $ListView3K)
GUICtrlCreateListViewItem("9|白醬蛤蜊 飯|85", $ListView3K)
GUICtrlCreateListViewItem("10|白醬海鮮 飯|110", $ListView3K)
;###############################################################################################
; 4K ###########################################################################################
_GUICtrlListView_DeleteAllItems($ListView4K)
GUICtrlCreateListViewItem("1|蒜香鮮蔬 麵|55", $ListView4K)
GUICtrlCreateListViewItem("2|蒜香培根 麵|65", $ListView4K)
GUICtrlCreateListViewItem("3|蒜香雞肉 麵|65", $ListView4K)
GUICtrlCreateListViewItem("4|蒜香蛤蜊 麵|75", $ListView4K)
GUICtrlCreateListViewItem("5|蒜香海鮮 麵|90", $ListView4K)
;###############################################################################################
; 5K ###########################################################################################
_GUICtrlListView_DeleteAllItems($ListView5K)
GUICtrlCreateListViewItem("1|泰式酸辣海鮮湯麵|95", $ListView5K)
;###############################################################################################
; 6K ###########################################################################################
_GUICtrlListView_DeleteAllItems($ListView6K)
GUICtrlCreateListViewItem("1|玉米濃湯|25", $ListView6K)
;###############################################################################################
; 7K ###########################################################################################
_GUICtrlListView_DeleteAllItems($ListView7K)
GUICtrlCreateListViewItem("1|加飯/麵(半碗100g)|10", $ListView7K)
GUICtrlCreateListViewItem("2|加飯/麵(一碗200g)|20", $ListView7K)
GUICtrlCreateListViewItem("3|加青花菜|10", $ListView7K)
GUICtrlCreateListViewItem("4|加起司片|10", $ListView7K)
GUICtrlCreateListViewItem("5|玉米濃湯|20", $ListView7K)
;###############################################################################################
$OrderID=$OrderID+1
$cowbe0=GUICtrlCreateLabel($OrderID, 485,766,100,80)
GUICtrlSetFont($cowbe0,40,$FW_NORMAL,$GUI_FONTUNDER,"Comic Sans MS")
;_GUICtrlListClear($ListView2)
_GUICtrlListView_DeleteAllItems($ListView2)
_GUICtrlEdit_SetText($Input5, "")
_GUICtrlEdit_SetText($Input8, "")
_GUICtrlEdit_SetText($Input10, "")
Local $itemCounts = _GUICtrlListView_GetItemCount($ListView2)
Local $totalPrice = 0
Local $tArr
For $i=0 To $itemCounts-1
$tArr = _GUICtrlListView_GetItemTextArray($ListView2, $i) ;get each item to the array
$totalPrice = $totalPrice + $tArr[ $tArr ] ;the last element is the price
Next
$cowbe=GUICtrlCreateLabel($totalPrice, 642,766,150,75)
GUICtrlSetFont($cowbe,40,$FW_NORMAL,$GUI_FONTUNDER,"Comic Sans MS")
Case $Button2
GUICtrlSetState($ListView1, $GUI_FOCUS)
$mc = GUICtrlRead($Input5)
$jg = GUICtrlRead($Input8)
$num = _GUICtrlEdit_GetText($Input10)
GUICtrlCreateListViewItem($mc & "|" & $num & "|" & $num * $jg, $ListView2)
GUICtrlSetData($Input10, "")
Local $itemCounts = _GUICtrlListView_GetItemCount($ListView2)
Local $totalPrice = 0
Local $tArr
For $i=0 To $itemCounts-1
$tArr = _GUICtrlListView_GetItemTextArray($ListView2, $i) ;get each item to the array
$totalPrice = $totalPrice + $tArr[ $tArr ] ;the last element is the price
Next
;MsgBox(0,"111",$tArr[ $tArr ])
;show the total price
;GUISetFont(40,$FW_NORMAL, $GUI_FONTUNDER, "Comic Sans MS")
$cowbe=GUICtrlCreateLabel($totalPrice, 642,766,150,75)
GUICtrlSetFont($cowbe,40,$FW_NORMAL,$GUI_FONTUNDER,"Comic Sans MS")
case $hCMenuText1 ;delete
_GUICtrlListView_DeleteItemsSelected($ListView2)
Local $itemCounts = _GUICtrlListView_GetItemCount($ListView2)
Local $totalPrice = 0
Local $tArr
For $i=0 To $itemCounts-1
$tArr = _GUICtrlListView_GetItemTextArray($ListView2, $i) ;get each item to the array
$totalPrice = $totalPrice + $tArr[ $tArr ] ;the last element is the price
Next
;show the total price
$cowbe=GUICtrlCreateLabel($totalPrice, 642,766,150,75)
GUICtrlSetFont($cowbe,40,$FW_NORMAL,$GUI_FONTUNDER,"Comic Sans MS")
Case $export
If $jg="" Then
MsgBox(16, "Failure", "Failure")
Else
exporttoexcel()
EndIf
Case $print
If $jg="" Then
MsgBox(16, "Failure", "Failure")
Else
print()
EndIf
Case $export_all
If $jg="" Then
MsgBox(16, "Failure", "Failure")
Else
print()
exporttoexcel()
EndIf
EndSwitch
WEnd
Func OnStateChange()
$cur_sel = _GUICtrlListView_GetNextItem($ListView1)
_GUICtrlEdit_SetText($Input10, "1")
GUICtrlSetData($Input5, _GUICtrlListView_GetItemText($ListView1, $cur_sel, 1))
GUICtrlSetData($Input8, _GUICtrlListView_GetItemText($ListView1, $cur_sel, 2))
EndFunc ;==>OnStateChange
Func OnStateChange1K()
$cur_sel1K = _GUICtrlListView_GetNextItem($ListView1K) ; current selected
_GUICtrlEdit_SetText($Input10, "1")
GUICtrlSetData($Input5, _GUICtrlListView_GetItemText($ListView1K, $cur_sel1K, 1))
GUICtrlSetData($Input8, _GUICtrlListView_GetItemText($ListView1K, $cur_sel1K, 2))
EndFunc ;==>OnStateChange
Func OnStateChange2K()
$cur_sel2K = _GUICtrlListView_GetNextItem($ListView2K) ; current selected
_GUICtrlEdit_SetText($Input10, "1")
GUICtrlSetData($Input5, _GUICtrlListView_GetItemText($ListView2K, $cur_sel2K, 1))
GUICtrlSetData($Input8, _GUICtrlListView_GetItemText($ListView2K, $cur_sel2K, 2))
EndFunc ;==>OnStateChange
Func OnStateChange3K()
$cur_sel3K = _GUICtrlListView_GetNextItem($ListView3K) ; current selected
_GUICtrlEdit_SetText($Input10, "1")
GUICtrlSetData($Input5, _GUICtrlListView_GetItemText($ListView3K, $cur_sel3K, 1))
GUICtrlSetData($Input8, _GUICtrlListView_GetItemText($ListView3K, $cur_sel3K, 2))
EndFunc ;==>OnStateChange
Func OnStateChange4K()
$cur_sel4K = _GUICtrlListView_GetNextItem($ListView4K) ; current selected
_GUICtrlEdit_SetText($Input10, "1")
GUICtrlSetData($Input5, _GUICtrlListView_GetItemText($ListView4K, $cur_sel4K, 1))
GUICtrlSetData($Input8, _GUICtrlListView_GetItemText($ListView4K, $cur_sel4K, 2))
EndFunc ;==>OnStateChange
Func OnStateChange5K()
$cur_sel5K = _GUICtrlListView_GetNextItem($ListView5K) ; current selected
_GUICtrlEdit_SetText($Input10, "1")
GUICtrlSetData($Input5, _GUICtrlListView_GetItemText($ListView5K, $cur_sel5K, 1))
GUICtrlSetData($Input8, _GUICtrlListView_GetItemText($ListView5K, $cur_sel5K, 2))
EndFunc ;==>OnStateChange
Func OnStateChange6K()
$cur_sel6K = _GUICtrlListView_GetNextItem($ListView6K) ; current selected
_GUICtrlEdit_SetText($Input10, "1")
GUICtrlSetData($Input5, _GUICtrlListView_GetItemText($ListView6K, $cur_sel6K, 1))
GUICtrlSetData($Input8, _GUICtrlListView_GetItemText($ListView6K, $cur_sel6K, 2))
EndFunc ;==>OnStateChange
Func OnStateChange7K()
$cur_sel7K = _GUICtrlListView_GetNextItem($ListView7K) ; current selected
_GUICtrlEdit_SetText($Input10, "1")
GUICtrlSetData($Input5, _GUICtrlListView_GetItemText($ListView7K, $cur_sel7K, 1))
GUICtrlSetData($Input8, _GUICtrlListView_GetItemText($ListView7K, $cur_sel7K, 2))
EndFunc ;==>OnStateChange
Func WM_Notify_Events($hWndGUI, $MsgID, $wParam, $lParam)
#forceref $hWndGUI, $MsgID, $wParam
Local $hWndFrom, $hWndListView1, $NMHDR, $NMLVDISPINFO, $NMLISTVIEW, $event, $iCode
$hWndListView1 = $ListView1
If Not IsHWnd($ListView1) Then $hWndListView1 = GUICtrlGetHandle($ListView1)
$hWndListView1K = $ListView1K
If Not IsHWnd($ListView1K) Then $hWndListView1K = GUICtrlGetHandle($ListView1K)
$hWndListView2K = $ListView2K
If Not IsHWnd($ListView2K) Then $hWndListView2K = GUICtrlGetHandle($ListView2K)
$hWndListView3K = $ListView3K
If Not IsHWnd($ListView3K) Then $hWndListView3K = GUICtrlGetHandle($ListView3K)
$hWndListView4K = $ListView4K
If Not IsHWnd($ListView4K) Then $hWndListView4K = GUICtrlGetHandle($ListView4K)
$hWndListView5K = $ListView5K
If Not IsHWnd($ListView5K) Then $hWndListView5K = GUICtrlGetHandle($ListView5K)
$hWndListView6K = $ListView6K
If Not IsHWnd($ListView6K) Then $hWndListView6K = GUICtrlGetHandle($ListView6K)
$hWndListView7K = $ListView7K
If Not IsHWnd($ListView7K) Then $hWndListView7K = GUICtrlGetHandle($ListView7K)
$NMHDR = DllStructCreate($tagNMHDR, $lParam)
$event = DllStructGetData($NMHDR, 'Code')
$hWndFrom = HWnd(DllStructGetData($NMHDR, "hWndFrom"))
$iCode = DllStructGetData($NMHDR, "Code")
Switch $iCode
Case $NM_DBLCLK
$tInfo = DllStructCreate($tagNMLISTVIEW, $lParam)
$Index = DllStructGetData($tInfo, "Index")
send("{enter}")
EndSwitch
Switch $hWndFrom
Case $hWndListView1
Switch $event
Case $LVN_ITEMCHANGED
$NMLISTVIEW = DllStructCreate($tagNMLISTVIEW, $lParam)
If BitAND(DllStructGetData($NMLISTVIEW, "Changed"), $LVIF_STATE) = $LVIF_STATE And _
DllStructGetData($NMLISTVIEW, "NewState") <> DllStructGetData($NMLISTVIEW, "OldState") Then OnStateChange()
Case $LVN_KEYDOWN
$tInfo = DllStructCreate($tagNMLVKEYDOWN, $lParam)
$Key=DllStructGetData($tInfo, "VKey")
Switch $Key
Case 0x30 To 0x39
_GUICtrlEdit_AppendText($Input10, DllStructGetData($tInfo, "VKey") - 0x30)
Case 0x60 to 0x69
_GUICtrlEdit_AppendText($Input10, DllStructGetData($tInfo, "VKey") - 0x60)
EndSwitch
EndSwitch
Case $hWndListView1K
Switch $event
Case $LVN_ITEMCHANGED
$NMLISTVIEW = DllStructCreate($tagNMLISTVIEW, $lParam)
If BitAND(DllStructGetData($NMLISTVIEW, "Changed"), $LVIF_STATE) = $LVIF_STATE And _
DllStructGetData($NMLISTVIEW, "NewState") <> DllStructGetData($NMLISTVIEW, "OldState") Then OnStateChange1K()
Case $LVN_KEYDOWN
$tInfo = DllStructCreate($tagNMLVKEYDOWN, $lParam)
$Key=DllStructGetData($tInfo, "VKey")
Switch $Key
Case 0x30 To 0x39
_GUICtrlEdit_AppendText($Input10, DllStructGetData($tInfo, "VKey") - 0x30)
Case 0x60 to 0x69
_GUICtrlEdit_AppendText($Input10, DllStructGetData($tInfo, "VKey") - 0x60)
EndSwitch
EndSwitch
Case $hWndListView2K
Switch $event
Case $LVN_ITEMCHANGED
$NMLISTVIEW = DllStructCreate($tagNMLISTVIEW, $lParam)
If BitAND(DllStructGetData($NMLISTVIEW, "Changed"), $LVIF_STATE) = $LVIF_STATE And _
DllStructGetData($NMLISTVIEW, "NewState") <> DllStructGetData($NMLISTVIEW, "OldState") Then OnStateChange2K()
Case $LVN_KEYDOWN
$tInfo = DllStructCreate($tagNMLVKEYDOWN, $lParam)
$Key=DllStructGetData($tInfo, "VKey")
Switch $Key
Case 0x30 To 0x39
_GUICtrlEdit_AppendText($Input10, DllStructGetData($tInfo, "VKey") - 0x30)
Case 0x60 to 0x69
_GUICtrlEdit_AppendText($Input10, DllStructGetData($tInfo, "VKey") - 0x60)
EndSwitch
EndSwitch
Case $hWndListView3K
Switch $event
Case $LVN_ITEMCHANGED
$NMLISTVIEW = DllStructCreate($tagNMLISTVIEW, $lParam)
If BitAND(DllStructGetData($NMLISTVIEW, "Changed"), $LVIF_STATE) = $LVIF_STATE And _
DllStructGetData($NMLISTVIEW, "NewState") <> DllStructGetData($NMLISTVIEW, "OldState") Then OnStateChange3K()
Case $LVN_KEYDOWN
$tInfo = DllStructCreate($tagNMLVKEYDOWN, $lParam)
$Key=DllStructGetData($tInfo, "VKey")
Switch $Key
Case 0x30 To 0x39
_GUICtrlEdit_AppendText($Input10, DllStructGetData($tInfo, "VKey") - 0x30)
Case 0x60 to 0x69
_GUICtrlEdit_AppendText($Input10, DllStructGetData($tInfo, "VKey") - 0x60)
EndSwitch
EndSwitch
Case $hWndListView4K
Switch $event
Case $LVN_ITEMCHANGED
$NMLISTVIEW = DllStructCreate($tagNMLISTVIEW, $lParam)
If BitAND(DllStructGetData($NMLISTVIEW, "Changed"), $LVIF_STATE) = $LVIF_STATE And _
DllStructGetData($NMLISTVIEW, "NewState") <> DllStructGetData($NMLISTVIEW, "OldState") Then OnStateChange4K()
Case $LVN_KEYDOWN
$tInfo = DllStructCreate($tagNMLVKEYDOWN, $lParam)
$Key=DllStructGetData($tInfo, "VKey")
Switch $Key
Case 0x30 To 0x39
_GUICtrlEdit_AppendText($Input10, DllStructGetData($tInfo, "VKey") - 0x30)
Case 0x60 to 0x69
_GUICtrlEdit_AppendText($Input10, DllStructGetData($tInfo, "VKey") - 0x60)
EndSwitch
EndSwitch
Case $hWndListView5K
Switch $event
Case $LVN_ITEMCHANGED
$NMLISTVIEW = DllStructCreate($tagNMLISTVIEW, $lParam)
If BitAND(DllStructGetData($NMLISTVIEW, "Changed"), $LVIF_STATE) = $LVIF_STATE And _
DllStructGetData($NMLISTVIEW, "NewState") <> DllStructGetData($NMLISTVIEW, "OldState") Then OnStateChange5K()
Case $LVN_KEYDOWN
$tInfo = DllStructCreate($tagNMLVKEYDOWN, $lParam)
$Key=DllStructGetData($tInfo, "VKey")
Switch $Key
Case 0x30 To 0x39
_GUICtrlEdit_AppendText($Input10, DllStructGetData($tInfo, "VKey") - 0x30)
Case 0x60 to 0x69
_GUICtrlEdit_AppendText($Input10, DllStructGetData($tInfo, "VKey") - 0x60)
EndSwitch
EndSwitch
Case $hWndListView6K
Switch $event
Case $LVN_ITEMCHANGED
$NMLISTVIEW = DllStructCreate($tagNMLISTVIEW, $lParam)
If BitAND(DllStructGetData($NMLISTVIEW, "Changed"), $LVIF_STATE) = $LVIF_STATE And _
DllStructGetData($NMLISTVIEW, "NewState") <> DllStructGetData($NMLISTVIEW, "OldState") Then OnStateChange6K()
Case $LVN_KEYDOWN
$tInfo = DllStructCreate($tagNMLVKEYDOWN, $lParam)
$Key=DllStructGetData($tInfo, "VKey")
Switch $Key
Case 0x30 To 0x39
_GUICtrlEdit_AppendText($Input10, DllStructGetData($tInfo, "VKey") - 0x30)
Case 0x60 to 0x69
_GUICtrlEdit_AppendText($Input10, DllStructGetData($tInfo, "VKey") - 0x60)
EndSwitch
EndSwitch
Case $hWndListView7K
Switch $event
Case $LVN_ITEMCHANGED
$NMLISTVIEW = DllStructCreate($tagNMLISTVIEW, $lParam)
If BitAND(DllStructGetData($NMLISTVIEW, "Changed"), $LVIF_STATE) = $LVIF_STATE And _
DllStructGetData($NMLISTVIEW, "NewState") <> DllStructGetData($NMLISTVIEW, "OldState") Then OnStateChange7K()
Case $LVN_KEYDOWN
$tInfo = DllStructCreate($tagNMLVKEYDOWN, $lParam)
$Key=DllStructGetData($tInfo, "VKey")
Switch $Key
Case 0x30 To 0x39
_GUICtrlEdit_AppendText($Input10, DllStructGetData($tInfo, "VKey") - 0x30)
Case 0x60 to 0x69
_GUICtrlEdit_AppendText($Input10, DllStructGetData($tInfo, "VKey") - 0x60)
EndSwitch
EndSwitch
EndSwitch
;EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_Notify_Events
Func exporttoexcel();EXPORT TO EXCEL
$col = 0
$count = _GUICtrlListView_GetItemCount($ListView2)
GUICtrlSetState($export,$gui_enable)
$excel = _ExcelBookNew()
$oWorkbook = _Excel_BookNew($excel)
_ExcelWriteCell($excel,"名稱",2,2)
_ExcelWriteCell($excel,"數量",2,3)
_ExcelWriteCell($excel,"金額",2,4)
_ExcelWriteCell($excel,"總金額",2,5)
_ExcelWriteCell($excel," ",2,6)
_ExcelWriteCell($excel," ",2,7)
_ExcelWriteCell($excel," ",2,8)
_ExcelWriteCell($excel," ",2,9)
_ExcelWriteCell($excel," ",2,10)
_ExcelWriteCell($excel," ",2,11)
_ExcelWriteCell($excel," ",2,12)
_ExcelWriteCell($excel," ",2,13)
_ExcelWriteCell($excel," ",2,14)
_ExcelWriteCell($excel," ",2,15)
_ExcelWriteCell($excel," ",2,16)
_ExcelWriteCell($excel," ",2,17)
For $colexcel = 0 To $col
$i = 0
do
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,0),3 + $i,2)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,1),3 + $i,3)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,2),3 + $i,4)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,3),3 + $i,5)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,4),3 + $i,6)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,5),3 + $i,7)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,6),3 + $i,8)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,7),3 + $i,9)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,8),3 + $i,10)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,9),3 + $i,11)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,10),3 + $i,12)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,11),3 + $i,13)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,12),3 + $i,14)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,13),3 + $i,15)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,14),3 + $i,16)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,15),3 + $i,17)
_ExcelWriteCell($excel, _GUICtrlListView_GetItemText($ListView2,$i,16),3 + $i,18)
$i = $i + 1
Until $i = $count
Next
_ExcelWriteCell($excel, "ID: "&$OrderID,2 ,1)
_ExcelWriteCell($excel, $totalPrice,2 + $i,5) ;總金額
;MsgBox(64,"Message","Export completed!" & @CRLF _
; & " "& @CRLF _
; & "Output excel file on your Desktop!",2)
DirCreate(@ScriptDir & "\Excel")
_Excel_BookSaveAs($oWorkbook, @ScriptDir & "\Excel\"& @YEAR & @MON & @MDAY & @HOUR & @MIN & @SEC & ".xlsx", Default,True)
_Excel_Close($excel,True,True)
EndFunc
Func _ExcelBookNew($fVisible = 0)
Local $oExcel = ObjCreate("Excel.Application")
If NOT IsObj($oExcel) Then Return SetError(1, 0, 0)
If NOT IsNumber($fVisible) Then Return SetError(2, 0, 0)
If $fVisible > 1 Then $fVisible = 1
If $fVisible < 0 Then $fVisible = 0
With $oExcel
.Visible = $fVisible
.WorkBooks.Add
.ActiveWorkbook.Sheets(1).Select()
EndWith
Return $oExcel
EndFunc ;==>_ExcelBookNew
Func _ExcelWriteCell($oExcel, $sValue, $sRangeOrRow, $iColumn = 1)
If NOT IsObj($oExcel) Then Return SetError(1, 0, 0)
If NOT StringRegExp($sRangeOrRow, "", 0) Then
If $sRangeOrRow < 1 Then Return SetError(2, 0, 0)
If $iColumn < 1 Then Return SetError(2, 1, 0)
$oExcel.Activesheet.Cells($sRangeOrRow, $iColumn).Value = $sValue
Return 1
Else
$oExcel.Activesheet.Range($sRangeOrRow).Value = $sValue
Return 1
EndIf
EndFunc ;==>_ExcelWriteCell
Func print()
DirCreate(@ScriptDir & "\PrintIMG")
_ScreenCapture_CaptureWnd(@ScriptDir & "\PrintIMG\"&@YEAR&"-"&@mon&"-"&@MDAY&" "&@HOUR&@MIN&".jpg", $Form1)
ShellExecute(@ScriptDir & "\PrintIMG\"&@YEAR&"-"&@mon&"-"&@MDAY&" "&@HOUR&@MIN&".jpg", "", "","print")
EndFunc
Func _Exit()
Exit
EndFunc ;==>_Exit
回复 3# ipmitool
設個 TXT檔案
使用 _FileWriteToLine每 EXCEL 目前寫入的行數 都寫入到 TXT 檔案的第一行
下次 要使用時取讀這個檔案就好 申请行数变量{:face (394):} 回复 9# lxwlxwayy
請教一下【申请行数变量】 這句話是啥意思??
小弟愚笨看不太懂.....有甚麼行數變量 可以用在這邊的?? 回复 10# kk_lee69
謝謝哥, 用你的方法已解決嘍~
页:
[1]