Windows users mostly dislike the command-line. This GUI utility is useful.
```
#Requires AutoHotkey v2.0
#SingleInstance Force
MainGui := Gui("+AlwaysOnTop", "CSV to XLSX Converter")
MainGui.SetFont("s10", "Segoe UI")
MainGui.Add("Text",, "Input CSV File:")
EditFile := MainGui.Add("Edit", "w400 ReadOnly", "No file selected...")
MainGui.Add("Button", "x+10 w80", "Browse").OnEvent("Click", SelectFile)
MainGui.Add("Text", "xm", "Output Folder:")
EditDir := MainGui.Add("Edit", "w400 ReadOnly", "No folder selected...")
MainGui.Add("Button", "x+10 w80", "Browse").OnEvent("Click", SelectFolder)
MainGui.Add("Text", "xm h10", "") ; Spacer
BtnConvert := MainGui.Add("Button", "xm w100 h40 Default", "Convert Now")
BtnConvert.OnEvent("Click", RunConversion)
MainGui.Show()
SelectFile(*) {
Selected := FileSelect(3, , "Select your CSV file", "CSV Files (*.csv)")
if Selected
EditFile.Value := Selected
}
SelectFolder(*) {
Selected := DirSelect(, 3, "Select the destination folder")
if Selected
EditDir.Value := Selected
}
RunConversion(*) {
InputPath := EditFile.Value
OutputDir := EditDir.Value
if (InputPath = "No file selected..." || OutputDir = "No folder selected...") {
MsgBox("Please select both a file and a destination!", "Missing Info", "Icon!")
return
}
FullCommand := 'csv2xlsx.exe -o="' . OutputDir . '\output.xlsx" ' . InputPath
try {
RunWait(FullCommand)
MsgBox("Success! The file has been converted.", "Done", "Iconi")
} catch {
MsgBox("Error.", "Execution Failed", "Iconx")
}
}
```
#autohotkey #gui #coding




