@echo off chcp 65001 >nul REM ============================================================ REM VDSC Add-in - Installer v6.0 REM ============================================================ REM Cong viec: REM 1. Check Python + pythonw REM 2. Pip install -r P:\PT_TVDT\TTDL\requirements.txt REM (file requirements do developer maintain truc tiep tren P:\) REM 3. Copy VDSC.xlam vao %APPDATA%\Microsoft\AddIns REM REM KHONG copy source code Python - source code luon nam o REM P:\PT_TVDT\TTDL\ (developer cap nhat truc tiep tren P:). REM REM Co the chay lai bao nhieu lan cung duoc (idempotent). REM ============================================================ setlocal EnableDelayedExpansion set "SRC_FOLDER=P:\PT_TVDT\TTDL" set "REQ_FILE=%SRC_FOLDER%\requirements.txt" set "ADDIN_FOLDER=%APPDATA%\Microsoft\AddIns" set "HERE=%~dp0" set "XLAM_SRC=%HERE%VDSC.xlam" echo. echo ============================================ echo VDSC Add-in - Installer v6.0 echo ============================================ echo. REM ===== Buoc 1: Kiem tra Python ===== echo [1/4] Kiem tra Python... python --version >nul 2>&1 if errorlevel 1 ( echo [LOI] Python chua duoc cai dat hoac khong co trong PATH. echo Cai Python tu https://python.org va tick "Add to PATH". pause exit /b 1 ) for /f "delims=" %%v in ('python --version') do echo [OK] %%v echo. where pythonw >nul 2>&1 if errorlevel 1 ( echo [CANH BAO] pythonw.exe khong tim thay - se popup CMD window khi bam nut. echo Cai lai Python ban day du tu python.org de co pythonw.exe. echo. ) REM ===== Buoc 2: Kiem tra requirements.txt tu P:\ ===== echo [2/4] Kiem tra requirements.txt tren P:\... if not exist "%SRC_FOLDER%" ( echo [LOI] Khong truy cap duoc %SRC_FOLDER% echo Kiem tra ket noi mang/ket noi o P:\ pause exit /b 1 ) if not exist "%REQ_FILE%" ( echo [LOI] Khong tim thay %REQ_FILE% echo Lien he Team Data de duoc tro giup. pause exit /b 1 ) echo [OK] Tim thay %REQ_FILE% echo. REM ===== Buoc 3: Cai Python packages ===== echo [3/4] Cai dat Python packages tu %REQ_FILE% ... echo (co the mat vai phut neu lan dau cai dat) echo. python -m pip install -r "%REQ_FILE%" if errorlevel 1 ( echo. echo [CANH BAO] Mot so package cai khong thanh cong. echo Thu chay thu cong: echo python -m pip install -r "%REQ_FILE%" echo. ) else ( echo [OK] Da cai het package ) echo. REM ===== Buoc 4: Copy VDSC.xlam vao Excel AddIns ===== echo [4/4] Copy VDSC.xlam vao Excel AddIns... if not exist "%ADDIN_FOLDER%" mkdir "%ADDIN_FOLDER%" if not exist "%XLAM_SRC%" ( echo [LOI] Khong tim thay %XLAM_SRC% echo File VDSC.xlam phai nam cung folder voi install.bat. pause exit /b 1 ) REM Dong Excel truoc khi copy (de tranh file lock) taskkill /F /IM EXCEL.EXE /T >nul 2>&1 timeout /t 1 /nobreak >nul copy /Y "%XLAM_SRC%" "%ADDIN_FOLDER%\VDSC.xlam" if errorlevel 1 ( echo [LOI] Khong copy duoc VDSC.xlam. Dong het Excel roi thu lai. pause exit /b 1 ) echo [OK] VDSC.xlam da copy vao %ADDIN_FOLDER% echo. echo ============================================ echo HOAN TAT setup! echo ============================================ echo. echo BUOC CUOI (chi lam 1 lan, chi tick 1 addin): echo. echo 1. Mo Excel echo 2. File ^> Options ^> Add-ins ^> Manage: Excel Add-ins ^> Go... echo 3. Tick [x] Vdsc ^> OK echo 4. Tab "VDSC" se xuat hien tren Ribbon - dung duoc ngay echo. echo CAC NHOM NUT TREN RIBBON VDSC: echo - Product: Excel Template, Word Template, Data Dashboard, Microsoft Form echo - Data: Check, Submit echo - Publish: Test, Send echo - Help: Document, Contact echo. pause endlocal