Changelog (Version history)
Track new features, bug fixes and breaking changes across DVDAddin releases.
2.8.7 (Current — 30 Oct 2026)
Fixes for bugs found while making the video tutorials.
- Dialogs show in full on high-DPI screens (125–175 %) (added in the late 30 Oct repack). On a 1080p laptop set to 150–175 %, a few dialogs were taller than the screen, so the OK / Cancel row sat under the taskbar and could not be dragged into view (e.g. Cut from list, the Batch print tab); dialogs now fit themselves to the screen — they shrink, or the whole content is scaled down evenly. The older windows — Read PDF (View PDF window), PDF Manager, the Print PDF box, the OCR table preview, PDF takeoff, the Navigation and AI Chat panes — now scale with the DPI, so labels are no longer cut off (e.g. "💾 Save As" used to show only "Save"), and the View PDF / PDF Manager button bars wrap onto two rows when the window is narrow. A few labels clipped at every scale are fixed too (Variation register, Punch list, the English record form, the Print PDF button).
- F1 in any dialog opens the guide page of the command in use (added in the 30 Oct evening repack). In any DVD Addin dialog, press F1 and the browser opens the guide page of the command that opened it. Windows with several tabs (e.g. Text & Number, File & Print) open the page of the open tab; message, error, confirmation and range-picker boxes open the page of the command using them; the Navigation, AI Chat and DVD Chat panes do too. Outside the dialogs, F1 is still Excel's help; Find Cmd still opens the page of the command highlighted in its list.
- Batch print: AutoFilter refresh and page-break insertion work for every number (added in the 30 Oct repack). When printing or exporting from two or more sheets, the sheets selected together at the end of each loop stayed grouped into the next loop, and Excel refuses to filter or set page breaks on grouped sheets — so from the second number on, the filter kept the previous number's criteria (new rows hidden in the PDF) and Auto-insert page break had no effect. The sheets are now grouped only right before exporting / printing; a sheet whose filter cannot be refreshed (e.g. protected) is reported at the end. No sheets are left grouped after the command.
- The range picker always takes the range you have selected; Rename Files always opens the folder picker (added in the 26 Oct repack). On some machines Excel does not tell the range picker each time you select a new range, so the address box stayed on the cell selected when you ran the command. The picker now reads the selection again itself, and OK (or Enter on the sheet) always takes the range selected at that moment; text you typed is kept until you select a new range. If Excel's folder picker does not appear after OK in Rename Files, the Windows folder picker opens instead, and an error is reported instead of the command quitting silently.
- Split table, Merge tables, Price adjustment, Bar schedule, Auto group, New Diary, Quick Input source ranges: the windows no longer block Excel (added in the early 22 Oct repack). These seven windows used to lock all of Excel until closed, and their pick buttons had to use Excel's range box. Now you keep working on the sheet while the window is open, and the ⤴ / Pick… buttons use the range picker that does not lock Excel. Quick Input source ranges is tied to the workbook that was active when you ran the command (its name shows in the title bar): rules are always saved in that workbook, and a range picked in another workbook is refused. Bar schedule writes the BBS / cut list into the workbook that holds the dimension table.
- Range pickers that do not lock Excel in every command that asks for a range (added in the 22 Oct repack). Like Copy/Paste visible in the previous repack, Delete blanks, Insert and Copy, Merge rows by key, Rename Sheets, Rename Files, Assign Level, Rename Shapes, Pictures and the other shape / picture commands, plus the ⤴ buttons in Batch print, Merge to Word, Send Email… now use the DVD Addin range picker: while it is open you can scroll, drag the scroll bars, switch sheets or switch workbooks to pick the range there; Enter on the sheet = OK, Esc = Cancel. Multi-line prompts show in full, and an error after you click OK is reported instead of failing silently. The dialogs that had to be closed before you could work on are changed in the entry just above.
- Insert and Copy, Split table, adding manpower / machinery columns to a schedule: copied dates keep their exact format (added in the late-night 21 Oct repack). These commands copy cells without the clipboard; date cells formatted dd/mm/yyyy (the same as Windows' short date) used to turn into the "system short date" format — still 31/08/2026 on your own computer, but on a computer with other regional settings the copies showed 8/31/2026 while the originals still showed 31/08/2026. Copies now carry the source cell's exact format. Cells copied by the old version: re-apply dd/mm/yyyy to the date column if the file goes to other computers.
- Merge similar cells: every cell of a group keeps its data, row heights stay (added in the late 21 Oct repack). The command used to merge with Excel's own Merge, so only the first cell of each group kept data — filters, COUNTIF and SUMIF by column lost the rows below. Now every cell of the group (including the hidden ones) keeps its value and row heights stay as they were. Re-running on the whole column after adding rows still works: areas merged earlier (even by Excel) get their values filled back in and are merged together with the new rows. Blank cells in between still join the group above but stay blank. No clipboard.
- Merge keep data: every cell of the merged range keeps the data, identical cells are not joined, row heights stay (added in the afternoon 21 Oct repack). Merging used to leave data only in the first cell (filters / counts by column lost the rows below), identical cells were still joined over and over ("31/08/2026 31/08/2026 …") and the first row grew to fit the joined text. Now every cell — including the cells hidden under the merged cell — holds the contents, so AutoFilter, COUNTIF and SUMIF by column still see each row; identical cells keep just the first one (still a real date / number); row heights stay as they were. A selection that contains merged cells (one or several merged areas, even mixed with plain cells) is unmerged area by area, each area filling its own data into its empty cells; only a selection with no merged cells is merged (selecting across several merged areas used to merge them all into one). No clipboard.
- Copy/Paste Visible: picking a range in another workbook can use the scroll bars (added in the 21 Oct repack). The Select range to copy / Select range to paste boxes used to be Excel's own range box, which locks Excel: another workbook's window only took clicks on the cells in view and its horizontal / vertical scroll bars could not be dragged. They are now a box of their own that does not lock Excel: scroll, switch sheets and switch workbooks freely; a range in another workbook shows the workbook name; Enter on the sheet is OK and Esc is Cancel as before. The overwrite confirmation names the target workbook and sheet.
- Move/Resize: pictures hide with their row / column (added in the 20 Oct repack). A picture pasted into Excel (Ctrl+V) does not size with cells by default, so hiding its row left it on screen; Move/Resize now attaches the picture to the cell like the Insert Pictures commands — hiding the row or column hides it, unhiding brings it back at the right size, and filtering, sorting or resizing cells carries it along.
- PDF Manager: saving and then deleting more pages no longer removes the wrong pages (added in the 20 Oct repack). After an overwriting SAVE, the page tiles still pointed at the file's old page numbers (the file now had fewer pages), so the next delete / save kept the wrong pages and silently dropped some; cropped or rotated pages were cropped / rotated once more on every save. Now the window keeps working on the file just saved. The label under each thumbnail is the page's position, renumbered after every delete, drag, paste or insert (hover to see its page number in the source file). If you saved over a file and kept editing with the old version, reopen the file and check it.
- Edit PDF content: three bugs found while making the video tutorial fixed (added in the evening 16 Oct repack) — a paragraph that starts with a bold label (4. Assessment…:) no longer makes the edit box wider than the block and wrap differently from the original while you type; new text and one-line blocks typed longer get a frame around all of their text (the frame used to keep its old width, so clicking the text outside it missed the block); scanned pages keep bold line labels (Work item:) when edited. The Edit PDF content section now has a 10-case video tutorial.
- Button icons show properly (added in the evening 16 Oct repack): 💾 Save, 💾 Save As and 🖨 Print PDF in the Read PDF window, and 🧹 Clear, 📋 Copy and the attachment icons of the AI chat pane used to be empty boxes.
- Read PDF: ✎ Edit PDF content (added in the 16 Oct repack) — like Acrobat's Edit PDF: click a text block already on the page and edit it in place (font, size, colour, bold / italic, indents, bullets and justification are kept), restyle the selection, move / resize / delete blocks, add new text; Undo / Redo; Save / Save As / Print use the edited version, with markup flattened at the same time. The old text is really removed from the page (not covered with white), the rest keeps its exact position, fonts are embedded as subsets. TCVN3 / VNI fonts are read too (converted to Unicode when edited).
- Reuses the font embedded in the PDF when it has every character: edited text looks identical to the original (including letter-pair spacing learned from the page itself), no font needed on your computer, the file barely grows; a word with a missing character uses the Windows font for that word only. The unedited start of a paragraph keeps its original line breaks.
- Image editing: move, resize, rotate 90°, replace with another image, add new images, delete images.
- Scanned pages — 🔍 Recognize text: the text lines on the image become editable blocks, using the existing hidden text layer (already-OCR'd files) or the AI OCR service you chose; editing / deleting covers the old lines with the paper colour and draws real text.
- Also edits password-protected files (passwords and permissions kept on save), text inside embedded graphics blocks (only the edited spot changes) and vertical text.
- Read PDF tooltip (added in the 16 Oct repack) now says what the command does (it used to say "Read PDF content into Excel" — the command only opens a viewer, it does not put text into cells).
- Crop pages shows full labels on scaled displays (added in the 15 Oct evening repack). At 125% display scaling or more, the Keep right / top / bottom half buttons were cut off because the text grew with the display while the buttons kept their size; the whole dialog now scales with the display. The Zoom label in the PDF Manager button row is no longer hidden behind SAVE at 125%.
- PDF Manager: ✂ Crop pages (added in the 15 Oct repack) — cut away empty parts of pages, e.g. an A4 sheet scanned as A3 (like Acrobat's Set Page Boxes): four margins in mm or a box dragged on the preview, Keep left / right / top / bottom half, Remove white margins page by page (scanner dust ignored), To size A4 / A5 / A3 / Letter with an anchor; for the selected pages, all, or a page range, with an even / odd filter. Thumbnails update at once, SAVE writes the file; exporting pages as images follows the crop too.
- Column/wall shapes from DWG read MLINE walls, wide polylines and MULTILEADER marks (added in the 11 Oct afternoon repack). Walls drawn as MLINE or as polylines with a width used to be skipped silently, marks written with MLEADER were not assigned, and the advice to Explode did not help (Explode drops the width). MLINE and wide polylines 90–1000 mm thick are now read as walls of the right thickness, and MULTILEADER as a leader plus text; the progress line says how many such walls were read or skipped. Layers
LOIandLOI THANGcount as core walls; storey-named layers such asL1-COTorM2_VACHare no longer dropped by mistake. No need to Explode the drawing. - Footing / pile / column-wall shapes from DWG: removing an old set asks first (added in the repack). Remove this set and Remove all N sets now ask once (they used to remove at once); a set that belongs to another picture on the sheet is named in the prompt. The offer to build a progress table only adds rows for the shapes of the set just created (it used to collect every named shape on the sheet). Also fixed: the progress step shows a readable tool name (AutoCAD 2022 Core Console), font sizes use the local decimal separator, the name check only suggests Replace the existing set for names of the set that will be replaced, the removal message only says the picture's group is back as it was when that is true, piles numbered by mark count from 1, the pile result says round / square / rotated square, and learning errors and the reason a picture was rejected are shown correctly.
- Column/wall shapes from DWG: a file with several sheets picks the right one. A DWG holding several sheets on the same grid (pile, footing and column sheets side by side) used to tick the sheet with more elements — the footing sheet, with its hatched column stubs — so the match was only Medium. The command now tries matching up to 4 plans against the picture on the sheet and keeps the best one; section ② says which plan it picked, plans on the same grid get · sheet k/n, and rows of the other plans go to the end of the list. Also fixed: a solid hexagon on a layer not named for walls is no longer taken for a wall, the Type column says chamfered 6, and the result message lists the two name series
C1…(columns) andV1…(walls) separately. - Holidays take effect. Holidays entered in the Work calendar used to be ignored — the calendar stores the holiday name with the date and the scheduler could not read it: Auto calculate, summary-row durations, holiday shading, EVM, the 3-week look-ahead, Manpower, Cash flow… all worked as if there were no holidays. Recalculate existing schedules to refresh their finish dates.
- Draw Gantt works on tables without a Level column (it used to stop with "Drawing the Gantt chart failed").
- SQL Builder → Insert formula into cell: a single-value result inserts
=dvdSQLValue(…)so the cell shows the number at once; a table result inserts=dvdSQL(…)as a spilled array on Excel 365; queries longer than 255 characters are split into several strings joined with&(they used to fail with an obscure error). - Team work: Kick and permission commands are accepted only from the session owner. Admin commands carry a token signed with the Admin password and are encrypted; members only obey the session owner (on a LAN: the computer running the server), the permission table is sent encrypted, and a kicked computer gets its hidden sheets back and can join a new session. Update the whole team together — 2.8.7 does not accept admin commands from an owner still on an older version.
- Options: Restore defaults no longer silently deletes your AI keys. Restore defaults followed by Save used to wipe every API key; now, when keys are saved, the add-in asks whether to delete them too — Cancel (the default) keeps them. An empty key box never overwrites a saved key. Also in Options: changing the Theme or clicking Restore defaults and then Cancel now leaves nothing behind (the new theme used to be saved at once, and the user-added/hidden model lists cleared at once); the Temperature box now takes effect in the chat pane and in Gemini-based AI commands (it used to be written to one place and read from another); Save no longer embeds the Rebar cutting settings into the open workbook unless you changed that section; the Theme label and choices follow the interface language; the Gemini key button opens the page for the Google account you are signed in with.
- Ctrl+Z after deleting many sheets at once restores every sheet, in the order you selected them — deleting more sheets than the number of backups kept (5 by default) used to prune the first backups and lose some sheets, and the rebuilt sheets came back reversed. Also in Restore data: Restore to a new sheet no longer fails (leaving a backup sheet visible) on long sheet names; Delete all reports the right count; the Save As question names the real OK / Cancel buttons; the greyed-out backup box states the right reason.
- Find command: better ranking. Commands whose name holds everything you typed come before those that only mention it in the description; typing
inno longer matches words that merely contain "in"; Vietnamese names work too (danh sofinds Numbering). The first row is preselected when the list opens — Enter reruns your last command; the key hint follows the interface language. Long descriptions no longer run past the right edge; command names always show in full, long descriptions end with …, hover a row to read it all. - Navigation: the sheet list's right-click menu (Rename, Protect Sheet, Very Hide, Group, Delete Sheets…) follows the interface language — labels used to be English and tooltips Vietnamese in both.
- Check for updates: removed the "Don't show this notification on startup" box — the add-in never checks for updates by itself when Excel starts, so it never did anything. The Upgrade to Pro box states the current TCVN database size (118 materials, 678 criteria).
- Bundled templates cleaned further: no SharePoint path, internal printer setup, leftover real project names and addresses or company logo (replaced by a same-size LOGO box); the records cite Decree 207/2026 instead of Decree 06/2021.
2.8.6 (9 Oct 2026)
Offline guide and practice workbooks installed. The installer copies the complete user guide as PDF to C:\DVDAddin\HuongDan (Vietnamese and English, with a table of contents and every picture — readable without internet) plus 4 practice workbooks: one sheet per command / function, data and formulas exactly as in the guide pictures, every sheet linked back to the Index. Open them with the new User guide command (About ▸ Help — the English interface opens the English book, the Vietnamese interface the Vietnamese one) or from Start → DVDAddin Excel. On the website every command and function page also has a button to download its own sample workbook — see Introduction → Offline guide.
Illustrated guides for every command and every function. All 224 commands and 50 UDFs now have step-by-step guides with pictures: the ribbon with the button to click, the add-in's real dialogs, the sheet before and after, the formula being typed with its argument tip, and numbered badges matching each step. Click a picture to zoom in. The File Tools page gains an illustrated section on Combine files, Split table, Compare sheets and Merge tables; every ribbon command now appears on its group page.
UDF fixes (found while writing the guides):
- Decimal criteria typed as text (
"0,5") are no longer read as 5 on Vietnamese-locale machines —dvdConcatIF/IFS,dvdJoinIF/IFS,dvdFilter2DArray,dvdXlookup; criteria compare the COUNTIF way and numbers compare by value. dvdConcatIF/IFSno longer joins empty cells intoA, , C;dvdUniqueskips empty cells;dvdAutoHidewith">0"no longer treats text cells as greater than 0.dvdEvaluatehandles^andsqrt(it used to return an empty string) with Excel's precedence (-2^2= 4,2^3^2= 64).dvdUniConvertaccepts tone keys typed at the end of the word, the usual Telex habit (lots mongs);dvdUniVbaturns every accented character intoChrW(...)so the text survives the VBA editor on any machine.dvdExplain,dvdExplainE: the decimal separator follows Excel (it was always a dot —2.40=3*0,8), rounding follows DecimalPlaces, formulas using;are read,SUM/PRODUCTare expanded in place; a missing formula cell gives#VALUE!.dvdUsdwrites "One dollar only" (was "One dollars");dvdLTime,dvdLDatetell an empty cell from 00:00;dvdSteelWeightdrops floating-point tails.dvdSQLadds a warning row when the result is cut at 50,000 rows;ORDER BYon a column missing from aGROUP BYresult reports an error instead of returning unsorted rows.dvdLookupAllSheets,dvdQR,dvdMoveShape,dvdPicno longer call COM while Excel is calculating (which could close Excel on File → Print); drawing and moving shapes runs right after the calculation.dvdPic'sSpaceis in points, as documented.
Command fixes (review of 8 Oct):
- Ctrl+Z works right after Translate (including the Quick translate shortcuts), Add accents, Grammar fix and SMART Case — their results were written late, so Ctrl+Z could not bring the sheet back.
- QA/QC: Acceptance plan, Acceptance record and Test Plan write the real standard code (
TCVN 4453:1995) instead of the database code; Pass/Đạt follows the sheet language; form templates open as a new copy and never overwrite the original. - QS: Price adjustment adds a Unit column and writes results on the right rows when the table has blank rows;
12,5is read correctly in Price adjustment, Estimate bridge and SQL Builder; the Rebar Cutting Optimizer no longer reads0.500as 500. - Schedule: Schedule health colours are right (red/yellow/green) and SPI 1.00 is green; 3-Week Lookahead and the 2-week version show the right banners; Resource levelling skips days off; sheet names up to 31 characters.
- Send format no longer resets columns to 8.43 or unmerges cells on the receiving machine.
- AI Chat asks for consent before sending sheet data, including when comparing two ranges; Screen-clip OCR leaves the clipboard alone and an empty result never overwrites the cell; Quick input pops up right next to the cell.
- Encoding conversion: To TCVN3 no longer encodes a second time the short TCVN3 cells that look like Unicode (
Cét= Cột). Such a cell is decided from the other cells with the same font in the selection — when most are TCVN3, To Unicode givesCột; when it cannot tell, the text is left alone. - Standard numbers with several bodies (
TCVN ISO/IEC 17025:2017,TCVN ISO 9001:2015,BS EN 206:2013,ISO/TS 22163) appear in full in the Standard column of Test Plan, Acceptance Plan and Acceptance Record (it used to show onlyIEC 17025:2017). - Many messages, labels and tooltips that mixed languages now follow the selected language.
Bundled templates cleaned: SendEmail, FormNTCV, FormNTVL, FormNKCT, GanttChart and RebarCutOptimizer no longer carry real project e-mails, company names, addresses or paths. The template sheet in GanttChart is renamed MHC.VP_Schedule_Template → VP_Schedule_Template (MS Project XML import still accepts the old name).
New command — Column/wall shapes from DWG (Shape Menu, PRO): reads concrete columns (rectangular, round, L/T) and walls from the plan DWG/DXF, matches them onto the plan picture and draws true-section shapes — columns C1, C2…, walls V1, V2… (two separate sequences) for pour-progress colouring. When the drawing holds several plans on the same grid the main plan is ticked; marks like W400(1) and CW follow the nearest text (W/V marks to walls only) or the leaders; sizes go to Alt Text. Also fixed: Number shapes now really blocks footing/pile/column-wall sets made from DWG (it used to look for the tag in the wrong place and never blocked).
Test Plan: TCVN database reviewed against QCVN 16:2023/BXD — 118 entries, 678 criteria (was 53 / 239). Superseded standards updated (TCVN 2682:2020, 6260:2020, the TCVN 3105…3120:2022 set, TCVN 3121:2022, 4314:2022, 13113:2020…), mandatory criteria and * criteria (tested when required) are marked, QCVN limits and specimen requirements and HS codes added; 65 new entries (sulfate-resisting cement, fly ash, slag, manufactured sand, paving blocks, AAC, foam concrete, wall panels, roof tiles, sanitary ware, insulating glass, wallpaper, PE/GRP/ductile-iron pipes, cable trays, conduits, admixtures, mixing water, tile adhesive, spun piles, pile testing, asphalt, geotextile, PVD, bitumen membranes, welds, steelwork paint, welded fabric, coated steel sheet, aluminium/U-PVC windows, curtain walls, sealants, HDPE geomembrane, copper tube, post-installed anchors, precast and steel sheet piles, fine sand, natural gravel, cement-treated base, bitumen emulsion, polymer bitumen, road marking paint, spun concrete poles…) plus system tests: plumbing pressure tests, fire sprinklers, earth resistance, insulation resistance, duct and refrigerant leak tests, LPG. Moisture-resistant gypsum board no longer cites the fibre-cement standard; Ids are unchanged, so entries you overrode in TCVN-Custom.json still take effect.
17 bugs fixed from a full review of the add-in — several produced wrong figures without any warning.
- EVM, Manpower, Cashflow produced no report on schedules with WBS summary rows — the note "skipped N summary rows" was treated as an error. Reports now come out, with the note added to the success message.
dvdSumVisible,dvdSumIfColor,dvdCountIfColoralways returned 0 anddvdAutoHidehid nothing — Excel passed values instead of ranges. They now read the range through Excel's C API (no COM during calculation — no more crash risk when printing), whole-column selections don't scan a million cells, anddvdAutoHideonly changes rows that need it so it can't loop.- Send Email: pressing Enter in a field no longer sends the whole batch; Send asks for confirmation with the count; rounds with a missing attachment or failed PDF are not sent and are listed; Preview opens only the first mail; multi-cell To/attachment fields no longer turn into "System.Object[,]".
- Merge to Word after Create Title replaced nothing (it searched for
[[Name]]) — bracketed headers are now accepted, and placeholders missing from the Word template are named. - Delete error Defined Names no longer deletes the add-in's own names (payment-period chain, acceptance records, work calendar) or names Excel creates itself (
_xlfn.for XLOOKUP…, print areas); strings containing#are no longer errors. - Rebar Cutting Optimizer: off-cut codes no longer clash when run several times a day (
DU-yyMMdd-ncontinues from the highest); hand-typed off-cuts without a code are now struck out as used — previously they were cut again and again. - Linked Labels no longer overwrites the clipboard (Copy/Paste fallback removed).
- Calendar Setup: National Day is 2 days off (1 September added) per the 2019 Labour Code.
- Data Cleaning: whitespace cleaning keeps Alt+Enter line breaks; date normalisation no longer turns numbers into date strings; fuzzy match only highlights suspected duplicates; hidden/filtered rows are never deleted.
- Auto format numbers/dates: only text cells are converted, formulas and leading zeros are kept, the range is no longer reset to General; on a decimal-comma machine "1.2" (an item number) no longer becomes 12.
- Print Pages: Cancel in the printer dialog really stops; PDF files carry the sheet name so runs don't overwrite each other.
- Insert Pictures: each picture goes into its own merged area in reading order (they used to stack inside one merged cell), files sort naturally; the new default fits inside the cell keeping the ratio — site photos are no longer squashed.
- Bulk find & replace no longer writes into the wrong cell: on Replace all, cells that changed since the Preview (edited, sorted, rows inserted) are skipped and counted. Multi-area selections and Ctrl+A on the whole sheet are now scanned in full (it used to read only the first area / report "not found"), selecting a single cell no longer errors, and number / date cells are no longer matched by mistake (searching "45" used to hit every 2023–2025 date).
- Fill results, Join Text and Merge keep data use the cell's displayed text: quantity descriptions no longer read
2.3 x 3 = 6.8999999999999995, dates no longer become serial numbers, error cells no longer become-2146826246. Fill results no longer swaps decimal separators and breaks numbers with thousands separators. - Transcribe audio: API errors (missing key, file too large…) are shown in a dialog instead of being written into the cell as if they were the transcript; the file size is checked before uploading; the transcript is written one line per cell (a cell holds at most 32,767 characters); the status bar shows progress.
dvdMVLookup,dvdMCLookup,dvdUniqueVwriteoutputRangeinto the workbook that holds the formula (they could clear or overwrite another open workbook with the same sheet name), write only when the result actually changes — editing elsewhere no longer wipes Ctrl+Z — and never spill outside the declared range.dvdMCLookupanddvdUniqueVare no longer volatile.dvdLookupAllSheetssearches the workbook that holds the formula instead of whichever workbook is in front.
The remaining bugs from the review are fixed.
- Formulas: Lock references in "remove $" mode no longer strips
$from format strings ("$#,##0") or sheet names; formulas longer than 255 characters are reported with their addresses instead of being skipped silently. Rounding wraps formulas containing text asIFERROR(ROUND(X),X), skips cells returning TRUE/FALSE, and Remove rounding strips only the outermost layer. Auto SUBTOTAL understands Roman / 1.1.1 numbering and no longer overwrites summary rows holding a hand-typed number. - Text: UPPER / lower / Proper / Sentence case keep units (MPa, kN, m3), symbols (C1, D12) and abbreviations (TCVN, BTCT…). Remove spaces and Remove accents no longer turn formulas into values and skip filtered rows. Subscript no longer rewrites text or touches concrete grades B25/M300; superscript leaves "Room2" alone. Numbering from "C1" gives C2, C3 (not C11); "HM-09" gives HM-10.
- Encoding: conversion decides the source encoding from the content first, then the font — text already in Unicode but still in a .VnTime font is not decoded into garbage; TCVN3 text whose font was changed to Arial is still converted.
- AI: Grammar fix, Add accents and SMART Case skip formula cells and accept only the right kind of result (accents only / case only).
dvdAIExplainuses the selected AI provider and no longer calls the network on every recalculation. - Graphics:
dvdColorShapescolours the sheet that holds the formula, skips rows without a colour instead of stopping (no IFERROR needed) and returns "Coloured 223/225 · missing: …"; Color shapes lists missing names. List shapes sees shapes inside groups; Rename shapes refuses duplicate names; Number shapes refuses DWG pile/footing sets. Insert pictures by name offers to replace old pictures and lists missing names. Picture comment keeps the picture's ratio; by name keeps old notes where no picture is found. Auto Click waits before each click, never clicks its own Stop button, stops on ESC and logs to its own "AutoClick" sheet instead of clearing the active sheet. - Cells / View: View image never overwrites a picture's own macro, remembers its state and is removed before saving (recipients get no macro error). Reset Note moves notes back next to their cells. Number sheets and Rename sheets go through temporary names — swaps work, duplicate / over-31-character names are listed.
- Files / Print: Rename files keeps extensions, supports swaps, writes a status per row and a CSV log. Strip folder accents lists skipped items. Batch print asks before printing on paper, empty From/To no longer becomes 1–10, failed numbers are listed with the reason (PDF open…). Sheets → PDF and Word → PDF say which file failed and why. Resize images follows EXIF orientation, never upscales and keeps the capture date. PDF Manager keeps bookmarks on save, adds per-file bookmarks when merging and asks to save on close.
- Schedule: Resource levelling uses the workbook calendar and writes SNET constraints so Auto-calc keeps the dates; Manpower, Lookahead (keeps overdue unfinished work) and Schedule recovery follow the work calendar. Draw Gantt remembers scale and column width per sheet. Import .xer / XML bring actual dates, constraints, hours per day and the file's work calendar (asks before applying it to the workbook).
- Error reports: every error box now writes the full trace to the support log. Internal functions (GEMINI…) are hidden from Excel's function list; existing formulas keep working.
Data safety.
Ctrl+Zright after a command that took a backup now puts the sheet back as it was (the Undo button names the command and the backup time); commands that touch several sheets or delete sheets are rebuilt in full — see Restore data.- Protected sheets: the confirmation warns up front that locked cells cannot be written — the command used to die half-way with a cryptic COM error, leaving a half-done table.
- Selecting whole columns / rows and running a cell-by-cell command (delete blank/hidden rows, rounding, lock references, bullets, numbering, change case, merge cells, copy visible cells…) no longer freezes Excel for minutes — an oversized selection is clipped to the used part of the sheet.
- Hidden backups: Save As on a workbook that still holds backups now asks whether to delete them (the recipient could pull out old data); backups older than 30 days are dropped at the next backup. Two new settings under Preferences ▸ Data protection.
- No more silent clipboard overwrites in Split Table (keep formatting — now column widths too), Insert copy below, adding manpower/machinery columns in Gantt settings, and the table insertion of Merge to Word — tables now go into every placeholder (half of them used to be skipped). Measurements showed that even
Range.Copy(destination)— long assumed to be a "direct copy" — empties the clipboard, so copies now go through Excel's XML Spreadsheet format. Reordering schedule columns has to Cut–Insert so formulas stay correct: if the clipboard holds something, the add-in asks first.
Schedule and document workflows.
- One data date per workbook (name
dvdDataDate): EVM, Variance, Health Check, Lookahead, Snapshot and Recovery pre-fill and remember it; Update Status uses it instead ofTODAY()— a file sent today shows the same figures tomorrow. - Measured against the baseline: Update Status (new BL Start/BL Finish columns), EVM, Recovery and Variance compare with the current baseline instead of the Start/Finish that CPM moved with the actuals — a task started 10 days late no longer shows 🟢. Statuses flag delays before completion (🔴 overdue, 🔴 not started, late). The Baseline dialog gains a Current column and a set-current button; Gantt settings can draw thin baseline bars under the current bars.
- New command Plan progress: a status table per shape (names taken straight from the plan, including pile/footing shapes from DWG inside groups), colours from the legend cell fills, a legend that counts Completed: 132/225 (58.7%), one-page PDF export.
- Send Email previews the whole batch before sending (recipients, subjects, missing files); date/number cells use their displayed text.
- New command Update schedule (data date) — like F9 in P6: not-started tasks no longer sit in the past, in-progress tasks finish at data date + remaining duration, project finish reported before → after; optional fill in actuals as scheduled (empty cells only). Enabled per sheet (sheets that never ran it keep the old CPM), backed up with Ctrl+Z.
- Snapshots: capturing again on the same date replaces the old one; the trend follows one source sheet with one point per day; a Snapshots tab in the Baseline dialog to view, delete and re-date.
- Pile/footing shapes from DWG now create (or update) the Plan progress table right away.
- Merge to Word: pre-merge check (file count, overwritten files, duplicate keys — now suffixed _2 instead of overwritten, missing placeholders), Test 1 row, replacement in headers/footers/text boxes and of values longer than 255 characters, numbers/dates exactly as on the sheet, optional PDF export.
- Unprotect Sheet writes a new
_unprotectedfile and leaves the original alone; Strip junk styles cleans a copy before swapping it in and keeps the original as_backup-<time>.
Easier to use.
- The About split button became a Help menu (Quick start guide, Restore data, Check Update, Download Tool, Export support log, About); Find Cmd and Preferences head that menu, and the About group keeps three large buttons Language / Help / License. They all work with no workbook open — they used to be greyed out. In a narrow Excel window the About group now shrinks step by step (icons only) instead of collapsing into a single button.
- Find Cmd (Ctrl+Shift+Q) remembers your recently used commands: with the search box empty they come first (marked 🕘) and Enter runs one again; it is now also in the Help menu on the DVD Addin tab.
- The three Bullets / Numbered list / Multilevel sub-menus are flattened into one picker with section titles right under the Numbering arrow; the three identical "(None)" items became Remove bullets / Remove list numbering / Remove multilevel numbering.
- Clearer labels in the Vietnamese interface: no more abbreviations, Vietnamese names for the PRO schedule commands, and the menu items still left in English translated.
- The Upgrade dialog lists the actual 21 Pro commands (read from the licence gate itself instead of a hand-written "12 features") and highlights the one you clicked; command names follow the interface language; the "buy before …" note hides itself once the date has passed.
- The Welcome screen is rewritten: both tabs (DVD Addin / DVD Cons), the Ctrl+Shift+Q and Ctrl+Z tips, and three buttons — Find command, Enter AI key (opens Preferences ▸ AI directly; it no longer tells users to edit the registry) and User guide.
- Unexpected errors no longer show a raw English stack trace: the error box says which command stopped and suggests Ctrl+Z and Export support log; the technical details sit in the collapsible Technical details section.
- The DVD Chat description is corrected: it works on every plan while the licence is active (it used to say "free"). The bullet / list command pages now say that Ctrl+Z right after the command puts the range back.
2.8.5 (2 Oct 2026)
Fixes Translate via Google Translate, which had stopped translating almost anything.
A connected QS chain: Variation Register → Price Adjustment → period payments; AI Estimate uses provincial price bulletins.
Interim Payment now builds a full period payment file.
- Each run creates a "Period n" sheet: a completed-work statement laid out after Form 03.a/TT (Decree 254/2025/ND-CP), with three groups: contract works, approved variations and price adjustment.
- The summary works out VAT, advance recovery (capped at the outstanding advance), retention, the amount claimed and the form's items 1–7, all as editable formulas.
- The next period reads the previous period's cumulative figures (matched by a per-row key, even for same-named items) and pre-fills contract value, advance and rates.
- The progress column accepts % or quantity (cumulative or this period). Rows over the contract quantity, or rows that lost their prior cumulative, are flagged.
Variation Register gains approval status.
- New columns: Status (Proposed / Approved / Rejected, from a drop-down), Approval doc No. and Approval date.
- New "approved" / "proposed" total lines. Values and totals are now formulas.
- Approved rows flow into the period payment.
Price Adjustment direct method can create a Price adj sheet (amounts as formulas). Both methods are picked up by Interim Payment as "Price adjustment".
Compare BoQ adds Also create a Variation register from the changed rows: every Increased / Decreased / New / Removed row becomes a Proposed variation.
AI Construction Estimate by province and quarter, published prices first.
- Choose the Province (34 provinces and cities) and Quarter/year.
- Load the provincial material price bulletin from a selection: items that match exactly take the published price, with no AI call. Matching is strict: D10 ≠ D12, PCB40 ≠ PCB30, same unit.
- The AI estimates the rest, with the bulletin as reference.
- Every row carries its price source (Published / AI / Manual), written to its own column or at the start of the note.
- The norm basis in the AI prompt moves to Circular 38/2026/TT-BXD. The bundled TT10/2019 and 1776 sets are labelled "old set".
New command: Acceptance Record (QAQC and Diary group). Select rows on an acceptance-plan sheet and click to draw up a construction work acceptance record with the main contents required by Article 22 of Decree 207/2026/ND-CP (which replaced Decree 06/2021 on 1 July 2026).
- The record covers: work items, time and place, inspection parties, basis, assessment, accepted / not accepted with rework, signatures.
- The basis pulls the applicable standards from the plan and the related test criteria from the Test Plan sheet.
- Records are numbered
BBNT-001…and laid out on A4 portrait, ready to print. - Plan rows switch to Pass / Fail with the record number. Acceptance Plan now cites Decree 207/2026 as well.
Punch List, RFI and Submittals gain a shared button row:
- Status (all 3 registers): one sheet with open / overdue / due-soon / held-by counts for the three registers, plus a chase list sorted by days overdue (click a reference to jump to its row).
- Issue forms…: turns the selected rows into RFI forms, submittal forms (A/B/C/D outcome boxes) or defect notices with the site photos. Optional PDF export and an Outlook draft with the PDFs; the add-in never sends.
New command: Revision Cloud (Graphics group). Draw revision clouds straight onto the sheet like the two Read PDF cloud tools: drag for a rectangular cloud or click corners for a polygon cloud; the scallops show while you draw, you can scroll and zoom mid-way, and while drawing Ctrl+Z removes the last cloud. Plus Cloud Around Selection (one cloud per block of cells / shape) and Convert to Cloud (keeps the original's name, line colour and stacking order). Clouds are true curves, so they print smoothly to PDF, and land on the right cells with frozen panes and at any zoom (measured 0.00 pt).
Notes drawn straight onto the sheet — four new tools in the Revision Cloud menu, like the Read PDF tool set: Arrow (drag from tail to head, Shift = 45°), Text Note and Sticky Note (click and type in place, drag a frame to set the width), Callout (press at the point, drag to where the text goes — text box and arrow leader grouped). Vietnamese input works normally: Enter finishes, Shift+Enter adds a line, Esc cancels. The results are real Excel shapes (text boxes, Excel arrows), so they can be edited later; font, text size and arrowhead size are set in Cloud Options and changed on the fly with
[].The License button counts down your trial right on the ribbon. The two Buy License commands are merged into License; its label shows the status:
Trial: 12 days left(⚠ in the last 3 days),Buy Licenseonce the trial has ended,Renew: N days leftwhen a plan is about to end,Sign in againwhen the session ended — once activated it simply readsLicense. Clicking opens the License box: Buy (or Renew / Upgrade to Pro) sits right next to sign-in, the account email is prefilled, and after paying a line tells you the next step. It works with no workbook open; in the last 7 days a mirror button also appears on the DVD Cons tab.The Tab Bar command now lives in the Navigation menu (View and Sheets group) instead of being its own large button, so the About group (Author, License) has room on the ribbon; when a narrow screen collapses the About group, its name still shows the trial days (
About · 12 days).Polygon clouds no longer flip scallops inwards on concave shapes — in Read PDF, Capture and Annotate and the drawing-compare clouds. "Outwards" used to mean "away from the centroid", which flipped 18/50 scallops of an L-shape and 22/59 of a U-shape; it now follows the polygon's winding (0 flipped), and convex shapes draw exactly as before.
Reading Layout is no longer offset on a secondary monitor. On two monitors with different display scaling (e.g. primary 125 %, secondary 100 %), the band on the secondary screen drifted off the cell edges — 1 px everywhere, 5 px at row 12, up to 16 px at column B — and overlapped the next row. The command asked Excel for cell positions through a function that is wrong on a monitor with different scaling. It now locates cells on screen in physical pixels (the method the Revision Cloud command uses): pixel-exact on both monitors, including frozen and split panes, smooth scrolling and zoom. Also: holding an arrow key at the window edge no longer hides the band, and low zoom or a floor-plan picture over the grid no longer makes scrolling stutter.
Translate via Google works again. Google had shut off the path the add-in used (fetching the
translate.google.com/mpage and scraping the result): requests were redirected to the "unusual traffic" CAPTCHA page and came back HTTP 429, so every cell kept its original text. The dialog then said "rate limited, wait a minute or select a smaller range" — the wrong advice: one cell failed exactly like 150 cells, and no amount of waiting helped.The command now calls the batch translation endpoint directly: a whole batch travels in one request instead of one request per line. A 150-cell range went from 150 requests down to 2, finishing in about half a second.
Never misaligned. If a batch comes back with a different number of segments than were sent, the add-in discards that batch and keeps the originals rather than zipping by position — zipping a mismatched batch writes one cell's translation into another cell and corrupts data silently. Measured over 120 numbered lines: 0 misaligned. Empty cells stay empty, two identical cells are not collapsed into one, and a cell containing a line break stays a single cell.
The error message now names the real problem. A dedicated failure type for automated-access blocking replaces the "wait a minute" text with advice that actually works: "Waiting or selecting fewer cells will not help — switch to Gemini or ChatGPT, or change networks." A Google refusal (403) is no longer misreported as "API key rejected" — this route uses no key — and a timeout is now called a timeout instead of an "unknown error".
Quick translate
Ctrl+Shift+J/Ctrl+Shift+Eand thedvdTranslatefunction translate again. Both still called the old, blocked Google route on their own, so even a single cell reported "No cell translated — … it may be throttling", and the function returned#VALUE!. They now share the Translate command's batched route: identical cells are sent once, 100 cells per request (300 cells ≈ 3.7 s). Also:- Translations are written as text: "15 tháng 3" → "March 15" is no longer turned into a date by Excel, and "=Tổng" → "=Total" does not become a
#NAME?formula. - A cell you edit while the request is in flight is not overwritten — the command re-reads the cells before writing and reports how many it skipped.
- With no network it stops after one wait instead of waiting 30 s for every 100 cells; a transient Google server error no longer abandons the whole range.
- Workbooks with many linked pictures write faster: one recalculation at the end instead of after every cell.
- Translations are written as text: "15 tháng 3" → "March 15" is no longer turned into a date by Excel, and "=Tổng" → "=Total" does not become a
Translate reports "nothing changed" correctly. When the service returns the text unchanged without any error — for example a project glossary pair whose two sides are identical,
"Spun pile" ⟺ "Spun pile"— the dialog used to say "Gemini returned an error, so nothing was processed"; it now says nothing changed and names the glossary pair responsible. Translating the glossary sheet itself no longer applies the glossary (the cells being translated are the rules). In Insert new columns and Into a new sheet modes the "translated" count now counts only cells that actually changed — a run that translated nothing used to report "3/3 cells".Translate & Close (Go) closes the dialog after translating. When you translated the glossary sheet itself, the dialog stayed open to show its "glossary not applied" note, so Go translated but left the window on screen. Go now always closes it — the note still shows with Translate (Apply). The window stays open only when some cells could not be translated, so you can rerun the rest.
Sync keeps text as text. A text cell that looks like a date, number or formula (
'3-5,'=Total,'007…) used to arrive on other machines as a date, a#NAME?formula or the number 7 — for single-cell edits, merged-cell edits, block pastes and the snapshot sent to late joiners. It now stays text. Merged-cell edits, block pastes and snapshots come through correctly even when the receiving machine still runs an older version; single-cell edits need this version on both machines.New command: Footing shapes from DWG (Shape Menu, PRO plan). Reads footings from the original DWG/DXF, matches the coordinates onto the plan picture on the sheet (even when Excel has stretched the picture differently in each direction, or it is cropped), previews every footing and then draws exact-outline shapes — rectangles, chamfered footings, polygons — numbered in reading order like Number Shapes, with the footing mark in Alt Text. The shapes are grouped with the picture, so they follow it when row heights or column widths change. On a real plan: 57/57 footings, shape edges a mean 0.07 pt from the picture's lines, order identical to the engineer's hand numbering. Reading DWG needs full AutoCAD no older than the file's format — drawings saved by AutoCAD 2018 or later need AutoCAD 2018+ (runs in the background, no CAD window); otherwise pick a DXF. When the automatic match is not certain the command switches to 2-point manual alignment; running it again offers Remove this set.
New command: Pile shapes from DWG (Shape Menu, PRO plan). The footing workflow, for pile layout plans: reads piles from the original DWG/DXF — round piles (circles 200–2500 mm across) and square piles (squares with 150–1200 mm sides, rotated ones too, drawn as polylines, hatches or four loose LINEs), and one drawing may mix both — matches them onto the plan picture and draws one true-size circle / square shape per pile. Shape name = the pile mark on the drawing (
P1,P2…), so a pile driving table needs only a column of marks for Color Shapes or thedvdColorShapesfunction to colour by name. Legend symbols outside the grid, pile-cap outlines that hold several piles and repeated unmarked column squares start unticked; a pile with a larger concentric ring is flagged (test?), a pile inside a concentric square outline (a single-pile cap) (cap?). The pile set is kept separate from footing sets — its own tags, group, settings and last file: Replace the existing set / Remove this set in the pile command never touch a footing set, and vice versa. On a real pile plan: 225/225 piles (182 D500 + 43 D350), 225/225 marks, and the 2 legend symbols correctly left out.Ribbon key tips (Alt) no longer block each other on the DVD Addin tab. Four buttons had one-letter key tips — AI Chat (
A), Encoding (C), Navigation (N) and Sentence case (S, in the Case menu) — so Excel ran that button as soon as you typed the first letter, and two-letter key tips starting with the same letter could never be reached: AI Menu (AA), About Menu (AB), Autosum (AS), Case (CC), Color Shapes (CS), Navigation Menu (NG), Numbering (NN, arrowNS), SMART case (AI) (SM). Now AI Chat =AI, Encoding =CM, Sentence case =SC, Navigation =DH; both tabs were re-checked and no key tip clashes with or blocks another.Generate schedule (custom range) no longer draws on the wrong sheet. In a workbook containing hidden sheets — for example one where this command had already been run, or that has automatic backups — the add-in picked up the wrong sheet: it built the result sheet correctly and in full, then overwrote an unrelated hidden sheet, failed to open it, and finally drew the chart on whichever sheet was open. You saw a completely different schedule, with no error message at all.
The cause: after cloning the template sheet, the code treated "the last sheet by index" as the one it had just created — true only when the workbook has no hidden sheets. It now takes the sheet it actually cloned, forces it visible, and if it still cannot be opened it names the sheet in an error instead of silently drawing in the wrong place.
No more slow typing caused by linked pictures in backups. With a footing plan carrying linked labels open, every Enter in every open workbook took ~1 s. Measured: after each recalculation Excel redraws every linked picture in every open workbook, ~6 ms each, hidden sheets included — and 104 of the workbook's 166 pictures were in 5 hidden backups made by Restore data before Translate and List Shapes. Linked pictures in backups are now stored as static pictures (image kept, and the formula too, so a restore relinks them); older backups are converted at the next backup or right away from the Linked Labels dialog. That workbook: ~1.05 s → ~0.35 s per Enter; with Static labels too: under 1 ms.
Restore data is safer. Overwriting from the OLDEST backup when 5 already existed used to delete that very backup (the automatic pre-restore backup pruned it) — no longer. The backup index is written in blocks instead of cell by cell (in a workbook full of linked pictures each cell write made Excel redraw every picture — one backup once took tens of seconds). When other sheets reference the sheet, an overwrite restore is refused with the reason, because those references would become
#REF!.Excel remembers its settings after closing. Tick Show formula bar (or move the window, collapse the ribbon…), close Excel, reopen — gone. Measured: every close of Excel with the add-in ended in a process kill (exit code −1) about 1.5 s after the window closed — before Excel had written its settings. Two culprits in a chain: the add-in's in-process watchdog made a COM call from a background thread every 2 s, and that call alone kept Excel from exiting (a "ghost" — block the rest and Excel sat window-less forever); the external watchdog meant to clear ghosts then killed on its very first check, unable to tell a ghost from a normal shutdown. The in-process watchdog is gone; the external one now acts only if Excel is still alive 20 seconds after its last window. Excel exits on its own in ~3 s (code 0) and keeps its settings — checked both ways, turning the formula bar on and off across restarts. A second cause showed up in real work sessions: the status-bar message after a command (List Shapes, Get Position, Color Shapes and most other commands that report on the status bar) was cleared 8 seconds later from a background thread, and that alone kept Excel alive — a ghost 7 times out of 7. The clearing now runs on Excel's main thread, and a clean-up step at the moment Excel starts shutting down releases any references left over. Re-measured with the same commands: Excel exits on its own every time and keeps its settings.
New command: Make Labels Static (Shape Menu). One click, no need to reselect the table: every linked label on the sheet and the linked pictures in hidden backups become static, then any other linked pictures left are listed. On a 57-label footing plan each Enter went from ~1.1 s to ~0.1 s. Labels whose source table is on another sheet stay linked (Excel sometimes stored their static picture as a blank box).
Linked Labels gains Static labels. They capture the cells now and do not update, but do not slow Excel down; the dialog shows how many linked pictures the workbook holds and estimates the delay.
Shape Positions records the drawn position for Shapes inside groups, and
dvdMoveShapeplaces grouped Shapes correctly without nudging the rest of the group — same root cause as labels overlapping footings.New command: Number Shapes (Shape Menu). Select shapes (or a whole group) and the command renames them 1, 2, 3… left → right, top → bottom, with a preview of old → new names before anything changes and an option to write the number inside each shape (keeping its text colour and size). Tried on a real 57-footing plan: the automatic order matched the engineer's hand numbering exactly, including small footings sitting off the row line and a footing twice as tall. Warns beforehand if an unselected shape already uses one of the new names.
New command: Linked Labels (Shape Menu). Select a table with a Shape-name column and a content column — each cell becomes a white-background linked picture placed above, below, to the left or right of, or centred on the Shape of the same name (a Shape at the sheet's top or left edge with no room there gets its label below / to the right instead, and the command says how many), and it updates when the source cell changes. Replaces doing Paste Special ▸ Linked Picture ▸ white fill ▸ drag into place by hand, one label at a time. Shape names written as numbers (1, 2, 3…) are matched by name, never mistaken for position; Shapes inside groups are found — and labelled where Excel actually draws them, even when the drawing group has been stretched with the row heights (before, the top row had the right gap and lower rows had the label creeping onto the footing); running again replaces the old labels; and the command leaves the clipboard alone, so whatever you had copied is still there.
Technical notation
Free Google Translate has no glossary, so rebar notation like Ø10 a200 can come back as Ø10 to 200. This was rarely visible before, because almost nothing translated at all. For rebar notation and standard codes, use Gemini with the terminology glossary.
2.8.4 (13 Sep 2026)
Three layers of trust — data-loss protection, no more silent failures, no more frozen Excel — three QA/QC document registers (punch list, RFIs, submittals), 5 new file and table utilities, and three estimating/QS tools: multi-file SQL functions, an estimate data bridge, and price adjustment. Added after 29 Aug: one seat means one person, DVD Chat runs in the background and hears every room, the AI assistant no longer reads material codes as cell addresses, and Compare BoQ compares two files.
🗓 Added on 13 Sep 2026
- Office-Tab style tab bar — one tab per open workbook just below the formula bar: click to switch, × or middle-click to close, a dot marks unsaved changes. Drag a tab to reorder, and the order survives closing Excel. Right-click a tab to Save, Copy full path, Open containing folder, or Close this / other / all tabs. Turn it on with Tab Bar.
- A "What's new" screen shown once after an update, so users on an older build learn what has been added.
- F1 in the command palette (Ctrl+Alt+S) opens the guide page for the selected command. Every command has a page, in both languages.
- 10 commands that previously did nothing when clicked now work — Calendar Setup, Gantt Settings, Show/Hide Columns, AI auto-level and six toggles; and they open the right tab even when the window is already open.
- Long-running commands now report progress on the status bar and say hold ESC to stop: AutoFit merged cells, Delete blank rows, Hide empty rows, Merge rows by key, Sheet index, Write file list, the four case-change buttons, and the three QA/QC registers.
- The error dialog is selectable and copyable, with a collapsible Technical details section and an Export support log button. Every error is written to the log.
- Activity logging to a file plus the Export support log command — API keys and session tokens are masked, and your spreadsheets are not included.
- Number fields understand the Vietnamese decimal comma: typing
12,5gives 12.5 instead of 125 (page margins, PDF stamp opacity, Gantt column width, numbering step, price-adjustment rates). - Changing Gantt settings or the working calendar redraws the chart immediately — no need to click Draw Gantt again.
- Sheet → PDF can export one PDF per sheet or merge every sheet into one file (Preferences ▸ File and Print).
🐞 Data-loss fixes
- Site photos in the punch list are no longer destroyed. Previously a colleague opening the register on another machine (the photo path points at the author's C: drive) had the embedded photos deleted; one Ctrl+S and the evidence was gone for good. Photos are now inserted as pictures embedded in the file: they show on a client machine with no add-in, there is no
#NAME?, and the author's folder path is not exposed. - Draw Gantt clears only the area the previous chart used instead of sweeping 1000 rows below the table, and the first automatic redraw on each sheet takes a backup first.
- The cutting optimizer now reports failures instead of showing nothing at all.
- Export XML (P6/MSP) writes correct dates. The finish date in the exported XML used to be plain calendar arithmetic — no Sundays skipped, no holidays — so opening it in MS Project shrank every duration: 25 days became 21, 19 became 17, the whole project 63 became 51. On a real 42-task schedule, 27 of 27 rows were wrong. It now counts on the real working calendar, and the durations MS Project reads back match the Excel Duration column exactly.
- Export XML (P6/MSP) keeps your start dates. The file used to carry no constraints at all, so MS Project ignored the dates in it and rescheduled every task to the earliest its links allowed: on a real 42-task schedule 14 rows were pulled 1–2 days earlier and the whole tail of the project drifted with them. Each task now carries a Start No Earlier Than constraint — a floor only, so tasks stay auto-scheduled and still slip when a predecessor is late. Measured again through MS Project itself: exact date matches went from 9 to 23 out of 42. The sheet's Constraint Type column still wins — put
ASAPthere to get the old behaviour back. - Export XML now names the rows that contradict themselves. Where a row's Duration column disagrees with its own Start–Finish span, the XML follows Duration; the activity IDs are now reported right after the export instead of leaving you to hunt for them.
- The License screen tells the truth about what is blocking you: a perpetual licence also shows the date by which the machine must reconnect, and a lapsed session says the licence is still valid instead of showing "Expired on: —" next to a Buy button.
- Quick-start screen: pressing Esc no longer disables it permanently.
✨ New features
🛡 Data protection
Add-in commands write through COM, so Excel's Ctrl+Z cannot undo them — the most common cause of lost work. This release adds a way back:
- A confirmation dialog before any command that can delete or overwrite data: it names the command, what it is about to do, which sheet, and warns that the action cannot be undone.
- An automatic sheet backup into a hidden sheet just before the command runs (keeps the 5 most recent by default; configurable in Settings).
- A new Restore Data command on the ribbon: browse the backups with their timestamp and the command that ran, then restore to a new sheet for comparison or overwrite the original sheet.
- Experienced users can tick "Don't ask again" to turn the confirmation off; backups keep running in the background.
🔑 Forgot password
The License window now has a Forgot password button: receive a 6-digit code by email and reset the password inside Excel, without contacting support. Also available in the AutoCAD build of DVDAddin.
🖨 Batch print
- New option to skip print areas with no picture: when a page inserts its image through a
dvdPicformula and that cell has no picture yet, the page is skipped instead of printing blank. See Batch print.
🏗 Seven specialist tools
Resource levelling — moves activities that still have float so the manpower profile flattens, or so no day exceeds the crew you actually have. FS/SS/FF/SF links with lag are preserved, work already under way can be locked, and the unevenness coefficient K1 is reported before and after on the standard construction-planning definition. Two modes: no delay (float only) and respect the limit — and neither hides an extension: any slip in the finish date shows in the trial result, the report, and the confirmation box. An activity that exceeds the cap on its own is named; a cyclic network stops the run and points at the cycle rather than producing a plausible-looking wrong schedule. It runs as a trial with a report first, and only writes to the schedule when you say so.
Bar schedule — the link that was missing just before the Cutting optimiser. Works out cutting lengths from the shape (straight, L, U, Z, closed stirrup), deducting bends and adding hooks, and writes a schedule that shows the working for every row plus a weight summary by diameter, with a cut list ready for the optimiser. Every coefficient is adjustable, because they differ between project specifications.
RFI — a register of requests for information. It answers the two questions nobody keeps straight by hand: who is holding it (you or the reviewer) and how many days the reviewer has had it — that count is written into a column on the sheet so it prints with the file, because it is the evidence behind an extension-of-time claim. The reply deadline is worked out from the contract period, rows are coloured by status, and the summary opens with ball-in-court and a chase list.
Submittals — a submittal register for materials, shop drawings, method statements, samples and certificates on the A/B/C/D outcome codes. It counts back the submit-by date = required-on-site − lead time − review time, shows it live in the dialog with the arithmetic, and marks in red everything already late to submit — the slip nobody notices until the material fails to arrive. Resubmission chains by rev: a resubmission keeps the ref and bumps the rev, and only the latest revision counts towards status, so the report is not inflated. The summary opens with NEEDS ACTION and carries the first-time approval rate plus two action lists.
Punch list — the register of defects to close before handover: creates a sheet with standard columns and drop-downs, adds items with a site photo, generates references from the highest existing number so deleting a row never clashes with one already issued, colours rows by status, flags overdue items and summarises by trade and location. Data contradictions are reported rather than silently corrected — this is a record.
Stamp PDF — numbers pages continuously across a whole submission set (custom template, nine positions, zero padding, page ranges to skip a cover) and stamps with text or a scanned seal, with rotation and opacity. Positions correctly on rotated landscape pages — verified by rendering the output back and measuring where the text landed at all four rotations. Source files are never overwritten.
Import .xer (P6) — reads Primavera P6's native exchange format, the one people actually send each other, with no P6 installed. Brings across activities, all four relationship types with lags, milestones, the critical path from total float and WBS levels; if the file holds several projects you choose which.
📊 Five tools for the estimating / QS side
Compare drawings — shows the actual PDF drawing — vector linework, sharp at any zoom — with revision clouds around what changed, the way a drawing review is actually done. Flip between New and Old for before and after, or Overlay for red-is-gone, blue-is-new. It exports a marked-up copy of the PDF to send to the consultant — the original file is never touched. It aligns two PDF exports plotted from different origins — without that every line reads as changed, and that result still looks like a real answer. When it cannot align them it refuses and says why (different sheet size, different scale, or simply not the same drawing) rather than producing a table of noise. A drawing that is mostly repeating linework (bar schedules, ceiling grids, tiling) has no unique alignment either, and is refused rather than guessed at. It compares a whole set page by page, stops on ESC, exports the change positions in millimetres of the original sheet to Excel, and saves the overlay as a PNG to attach to a letter.
PDF takeoff — measure quantities straight off a PDF drawing, with no CAD and no printing it out for a scale rule. The scale is calibrated per page (a set with plans at 1:100 and details at 1:20 measured on one scale is wrong by a factor of five across half of it), and cross-checked against a second known dimension — because a wrong scale never announces itself: every number is off by the same factor and nobody catches it until the valuation. Measure lengths, areas, perimeters, volumes (polygon × thickness) and counts, with deduction lines to take openings out of a wall and repeats for an identical detail. The Excel export carries a working column spelling out each row's dimension chain, so a reviewer can check it without opening the drawing. An uncalibrated page reports why there is no quantity instead of silently returning zero.
Data query functions — with a Data query command that builds the statement for you (tick columns, set conditions, preview the real data, then insert a formula or dump values).
dvdSQL,dvdSQLValueanddvdSheetsread data from a closed Excel file with a compact SQL dialect: filter, sum, group, sort. Totalling quantities across the 12 files the teams sent in is now one formula filled down, with no file opened. Unlike comparable add-ins, these need no ACE OLEDB driver — a separate install that must match Office's 32/64-bit build, and is often missing on site machines.Estimate bridge — import a BoQ from the Excel export of Escon, G8, Delta, Acitt, Du toan GXD and similar packages. The add-in finds the header row, guesses the columns from their names (including exports with the diacritics stripped and headers that wrap mid-cell), drops chapter and subtotal rows, and writes the standard layout.
Price adjustment — direct compensation per material, or the indexation coefficient
P = P₀ × (a + Σbᵢ×Iᵢᵗ/Iᵢ⁰). The breakdown sheet shows every term, ready for a contract appendix. If the weights do not sum to 1 it reports the error and stops rather than normalising silently.
🧰 The six utilities every add-in suite has
The file and table commands Kutools / Ablebits users reach for, none of which DVDAddin had:
- Combine files — pick files or a whole folder and merge them into one, either a sheet per source or everything stacked into one sheet for filtering and pivoting. Sources open read-only; already-open workbooks are not closed.
- Split table — cut a table by a key column into several sheets or
.xlsxfiles, header rows repeated on each, borders and merged cells preserved. - Compare sheets — walk both versions cell by cell to find edits, producing a table of addresses and both values, with optional highlighting.
- Merge tables — bring several columns from a lookup table into the main table by key, instead of a forest of VLOOKUPs; values are written directly but cells holding formulas are left alone, and unmatched rows are always reported.
- Sync page setup — set paper size, margins, header/footer and repeating titles on one sheet, then apply to the whole workbook.
The sixth — snapshot before a command and one-click undo — is Restore data, covered under data-loss protection above.
🔔 No more "success" when it actually failed
When AI or the network failed, the add-in used to say nothing — or say the wrong thing. Every AI command now goes through one shared classifier that turns the technical error into a sentence stating what broke and where to fix it: out of quota, wrong API key, rate limited, no network, wrong model name, server error, blocked by the safety filter.
The most significant fixes:
- Translate reported success for text it had not translated. A batch stopped by rate limiting falls back to the original, and the old summary called that "kept unchanged by the translator" — indistinguishable from the translator deliberately preserving a proper noun. It now says "N areas FAILED to translate" with the reason, and keeps the window open so you can rerun the rest.
- Smart capitalization was completely silent on failure. Select 200 cells, have all 200 fail, and there was no message at all — it looked like the command had not run. It now reports how many cells were processed and why the rest were not.
- OCR wrote the English error string over your cell. The cell is now left alone and the error appears in a dialog.
- Test plan reported "0 results" when the AI could not run, mixed in with the case where the AI genuinely had no suggestion. The two are now told apart.
- Schedule proposals stuffed the error string into every task's Note column and wrote it to the sheet, leaving hundreds of cells to clean by hand. It now shows a single message.
- The Translate window dumped registry paths on screen and asked the user to check them. It now names the actual problem.
📅 Schedule reports used the wrong status date on non-Vietnamese machines
EVM, Schedule health check, Variance dashboard and Lookahead asked for a Status Date and then read it using the Windows regional format. On a machine set to English (US):
- The string
28/08/2026— pre-filled by the add-in itself — failed to parse, and the add-in silently used today instead. - Worse:
03/05/2026was read as 5 March. The EVM report came out with SPI/CPI for a completely different point in time, without a word of warning, and then went to the client.
All four commands now read the date as day/month/year regardless of the machine's language, and stop with a clear message on a bad entry instead of quietly changing the date.
The same bug also lived in the code that reads dates out of cells. The report engines carried four near-identical copies of one date reader, and every copy fell back to the regional format when a cell held a date as text — common for schedules pasted from P6 / MS Project or typed by hand. On an English (US) machine a cell reading 03/05/2026 was counted as 5 March, and one reading 28/08/2026 could not be read at all, so that task dropped out of the report. Eleven date readers — including Construction diary and the holiday calendar window — now share one implementation; numeric cells are read exactly as before.
⏸ No more frozen Excel, and ESC now stops a long run
Three commands could freeze Excel badly enough to need End Task. The causes were all the same shape: a loop with no upper bound, or switching the screen off and then going away to wait for the network.
- Schedule constraints hung forever when a whole column was selected. The command walked to row 1,048,576 and de-duplicated with a linear list scan — roughly 5.5·10¹¹ comparisons. It now stops at the last data row (a value that was already being computed but never used) and de-duplicates with a hash set.
- Draw Gantt sat still for minutes with no way to cancel. The status bar now reads "Drawing schedule… 120/450 — hold ESC to stop", and holding ESC stops the run, keeping what was already drawn. It also no longer reports "success" after you stopped it.
- Bulk rename files hung on a large selection. For every file in the folder it re-scanned the whole selection, one Excel read per row — a whole column with 500 files is about 500 million reads. It now reads the selection once and matches in memory. It also asks for confirmation with an
old → newpreview first, since this renames real files on disk with no undo. - Translate locked the screen for the whole network wait. It turned off screen updating and forced manual calculation before calling the API, then waited minutes — while the network phase runs on a background thread and never touches Excel. It now switches them off only for the write step.
- Create title row walked column by column through Excel; a whole row meant over 33,000 calls. It now reads and writes one block.
🐛 Bug fixes
- Data cleaning turned formulas into static values. The command used to write the whole block back, replacing every formula in the selection with its result. It now writes only the cells that actually changed, leaving formulas intact.
- Delete blank rows / Delete hidden rows deleted entire rows silently. Selecting one column still deleted the whole row, taking data in other columns with it. The commands now count first and state how many of those rows still hold data outside the selection before asking.
- Write folder tree cleared the sheet before asking for the folder. Cancelling at the folder picker left the sheet already wiped. The folder is now chosen first.
- Strip Vietnamese accents from folder names now previews how many files and folders will be renamed, with a few
old → newexamples, instead of renaming straight away. - Translate failed on some machines while working on others. A machine whose regional format uses a decimal comma read the
0.5parameter as5, out of range, so the AI server returned HTTP 400. All numeric settings are now parsed with the invariant format, independent of the Windows regional format. - The Punch list read the wrong columns when column A was entirely empty. Clear the whole No. column and Excel reports the used range as starting at column B, while the command still counted from column A — every column shifted by one and the register was read wrongly with no warning. Both the first row and the first column are now accounted for.
dvdPicdrew the picture into the selected cell instead of the formula's own cell. When a command writes thedvdPicformula onto the sheet — the Photo column of the Punch list, for instance — the picture appeared wherever the cursor happened to be. The function now resolves its calling cell through the C API, which is correct in every context including formulas written from code. Rows holding a photo are also grown so the picture is readable.- Vague "session lost" message. The License window now states the reason: signed in on another machine, password just changed, or session revoked.
🤝 Working together — Connection system and DVD Chat
Added after the 29 Aug entry. DVD Chat and Team members live on the server; installing the new build is not enough — the server must be released too.
One seat, one PERSON
An N-seat order used to create a single account, so the whole team signed in with one email and one password. Everything keyed on the account treated them as one person, and the worst consequence was this: two colleagues at the same company could not message each other privately — the server looked the peer up by email, found the caller's own account, and refused.
The License window now has Team members: the account owner creates a separate account for each engineer (own email, own password, own identity). Seats do not move — licences stay with the purchasing account and a member simply borrows one while Excel is open, so renewals, revocation and order reconciliation are unchanged. The number of members is capped at the number of seats purchased.
Also: locking an account now cuts that person off within one heartbeat (4 hours by default) instead of letting them work on for up to 7 days.
DVD Chat
- Runs in the background. Previously nothing arrived unless the Chat pane was open — close Excel, reopen it, and there was silence until you clicked Chat yourself. The add-in now reconnects and surfaces new messages, but only on machines that have signed in to chat before, so people who never use it don't pay a network round-trip on every Excel start.
- Other rooms are heard too. Three projects means three rooms; with room A open, a message in room B used to be completely silent — no toast, no badge. It now arrives, and the toast names the room.
- Remembers the room you used last instead of landing in an arbitrary one.
- Direct messages show the other person's name instead of five identical "DM" rows.
- Shift+Enter for a new line. Enter used to send immediately, so an end-of-day report with three bullet points had to be fired as three separate messages.
- Message text can be copied, and web addresses are clickable (
http/httpsonly — any other scheme, coming from a stranger in the room, stays plain text). - Load older messages (only the last 200 were kept, with no way to get more), and search now covers attachment names, Excel cell addresses and poll questions.
- Failed sends survive closing Excel — the queue is persisted and restored when you re-enter that room.
- Export the conversation to Excel — five columns (Time / Sender / Message / Attachment / Excel range), stating how many messages were loaded and the earliest timestamp rather than truncating silently.
DVD Chat security
- An ordinary member can no longer promote themselves to admin. The old rules granted write access at the member level, and
rolesits inside it — anyone could writerole: "admin"onto their own record and then permanently delete the site team's whole room.roleis now closed to clients, and deleting a workspace requires the person who created it. - Attachments are now really deleted. Pressing Delete used to remove the message from the list only; drawings, site photos and cost files sent by mistake stayed on the server and the public download link still worked.
- Email probing is blocked. The endpoint that opens a private conversation used to answer an unlimited number of times, so feeding it a corporation's email list revealed exactly who uses DVDAddin. It is now capped at 20 lookups per hour.
- Block a stranger. The message context menu has Block this person; once either side has blocked, no private conversation can be opened.
Connection system (LAN / Internet)
- Change log — who edited which cell, the value before and after, exportable to a sheet.
- Table snapshots now reach the right person. A "private" packet was still broadcast to the room: when the host sent a snapshot to one person, everybody was asked, and whoever clicked Yes had their work-in-progress overwritten.
- No more silently lost packets — sends are chained in order, the receiver keeps a window, and missing packets are reported on the status bar.
- Numbers and dates travel in the invariant format with the cell's number format, so a date no longer arrives on another machine as
46272. - The display name is no longer the identity. Typing a different name used to let a banned user back into the room, and two people with the same name meant kicking one ejected both. Identity stays the machine name; the person's name travels alongside and is shown on the cell cursor on the sheet, the snapshot prompt, the missed-packet warning and the Administration window.
- The broker password is wrapped with DPAPI; LAN ↔ Internet is bridged (with both enabled, the two halves of the room could not see each other while the add-in reported they were in sync); and a single session host is elected when several people set an Admin password.
- The Connect window now requires a Data password before a session opens — leave it blank and sheet names, cell addresses and cell contents cross the network in the clear, while the default Internet route is a public broker without TLS.
🤖 AI assistant
- Construction vocabulary is no longer read as a cell address. "bê tông M250", "thép D10", "mác B15", "cấu kiện C1" were all taken as cell references — and
M250is a valid cell — so the AI assistant quietly read cell M250 and answered from its contents. No error, no way to notice. - It can see the selected range. Without a typed address the assistant received no cells at all, so "check this quantity table for an addition error" got a generic answer. Selecting the range is now enough.
- You are asked before data leaves the machine. Nothing in the product said that cell contents were being sent to an external AI server. It now asks once, names the provider, and calls out the tender-submission case specifically. Decline and the assistant still works — just without the cell contents.
- Fix formula no longer diagnoses blind. Only the formula string and the error code were sent, so the model guessed; it now receives the types and a few samples of the referenced cells, enough to say "B7 is empty".
- AI commands follow the provider you chose. One menu held two families of code: Explain/Fix formula followed the chosen provider while AI Grammar was hard-wired to Gemini — pick Groq and two adjacent buttons behaved differently for no visible reason. Commands that must use Gemini because they upload an image or PDF now say so.
- ESC stops a long run. Fixing grammar across 600 cells is 600 network calls; there was no way to stop.
- Files over 15 MB are rejected before being read. The whole file was read and base64-encoded first, so a large PDF drawing froze Excel and was then refused by the server, with an error message that said nothing about size.
- Errors speak Vietnamese and point somewhere. The AI assistant pane was the last AI path still showing the server's raw error string; every error now goes through the shared classifier, with the original text kept for support.
- The mid-run API-key prompt is gone. Five places asked for the key through a small input box that popped up from a background thread while the user was waiting for a result. Keys are now entered under Preferences ▸ AI assistant. (Correction: this release also added a "Google Translate API key" field, but the add-in's Google Translate needs no key — the field did nothing and was removed in a later release.)
⚡ Schedule and BoQ
- Auto-calculate now really converts Predecessors. With it enabled, typing
13SSnever turned into an Activity ID code: the conversion lived in a different command, while this toggle runs through the SheetChange path. - 66× faster. Per keystroke on an 800-row schedule: 20,790 ms → 313 ms, with byte-identical output. The cause was per-cell read/write loops through Excel.
- Compare BoQ compares two FILES. It used to compare two sheets inside one open workbook. You can now pick the previous and current issued files directly — even when both files have the same name (Excel refuses to open them together, so the add-in makes a comparison copy) — and choose where the result goes, so it isn't written into a file about to be closed.
🪟 Bug fixes
- The "Display name" box in the Connect window was cut off. The box is 150 px wide but only about 4 px showed, because it was squeezed into the third column of an already-full row. The three inputs are now stacked, one per row.
- The user list in the Administration window showed machine names. It now shows the person's name with the machine name, while Kick/Ban and the permission table still key on the machine name so they never target the wrong person.
- DVD Chat's first screen said the feature did not exist yet. New customers opening Chat were told "Phase 5 will add Create / Join workspace" — leftover text from development, while the menu beside it already had all three ways in.
2.8.3 (2026-08-19)
Fixes Duration syncing between MS Project and Excel.
🐛 Bug fixes
- Duration drifted when moving a schedule between Excel and MS Project. On Export XML (P6/MSP) the Finish date of each leaf task is now forced to match the Duration column before the file is written, so MS Project no longer recalculates the duration when it opens the file. The other direction — Import XML (P6/MSP) — still converts durations using an 8-hour working day, as before.
2.8.2 (2026-07-06)
A smarter construction diary, an upgraded Read PDF, tidier windows and two important licensing fixes.
✨ New features
📔 Construction diary
- Optional "Rest days" column (non-working days) in the New Diary command: list the days on which each task is not worked, joining several days with
+(for example23/11/2021+25/11/2021). The diary automatically drops the task content on exactly those days. Leave it empty = the task runs continuously, as before. - Pick Rest Days command (arrow menu under the New Diary button): select a cell in the Rest days column → the calendar appears → click one day, or hold
Ctrlto pick several → they are filled into the cell in the correct format. Reopen it and the days already entered are pre-ticked so you can edit them.
📐 Read PDF
- Fill colour for closed shapes (rectangle, ellipse, cloud…) with adjustable transparency from 10% to 100%.
- Fill for Text / Note boxes, font change, and no border (choose line width
0).
🖱 Windows get out of the way while you pick a range
The 8 windows that have a range-pick button (Diary, Send Email, Batch print, Merge to Word, Export Category, Quick Input, Two-range trace, Auto group) move out of sight when you click ⤴ and come back once you have picked — they no longer cover the worksheet.
🪟 Tidier interface
- The sheet list (Send Email) and the column list (Gantt Setup → Hide/Show columns) show about 10 rows at most with a scroll bar, instead of stretching the window past the edge of the screen.
- The Navigation bar collapses into a small arrow at the edge of the screen; click the arrow to open it again.
- The Text and Number and Bulk find / replace windows are narrower.
🖨 Batch print
- "Do not print empty picture areas" option: an area that has a
dvdPicformula but no picture has its row hidden while printing / exporting to PDF, and shown again afterwards.
🐛 Bug fixes
- Excel froze and then quit when you clicked New Diary — the cause was writing cell by cell through COM for every day; the whole table is now written in one go, many times faster. It also blocks absurd date ranges (> 10 years) caused by a date cell being read incorrectly.
- Excel quit when you clicked the range-pick button and then OK on modal windows — hiding and showing the window created a nested dispatcher frame; the window is now moved off-screen instead of hidden.
- Translate reported HTTP 400 "temperature must be in the range [0.0, 2.0]" on machines whose regional format is Vietnamese —
0.5was read as5; every numeric setting is now read with the invariant culture. This affected Translate, OCR and AI Chat alike. - PRO accounts still saw the purchase window even when signed in correctly — fixed on both the add-in side and the server side.
- STANDARD accounts activated before 01/07/2026 now keep the full set of PRO features until the license expires (a lifetime license keeps them forever).
2.8.1 (2026-07-02)
Schedule over a custom range, P6 – MS Project XML import/export, smart picture insertion.
✨ New features
- Schedule (custom range) — a single window: From date / To date (default today → +3 months), chart scale (Month/Week/Day), column width, the column where drawing starts. It draws a real Gantt for exactly that range, with Summary rows (parent WBS) and an option to clip tasks to fit neatly inside the range.
- Gantt Chart — merges 3 dialogs (Scale / Column width / Pick column) into one window; auto-draw keeps the scale you chose.
- Import XML / Export XML — handles both P6 (PMXML) and MS Project (MSPDI); Summary rows leave the code blank the way P6 does; critical tasks are highlighted for you.
- Smart picture insertion (Preferences → Graphics) — 4 fit modes: Fit cell / Keep original size / Fit column width (row height stretches to match) / Fit inside cell (keeps the aspect ratio, centred, never overflows the cell). Applies to Pictures, Insert by Name and Move/Resize.
🐛 Bug fixes
- Excel quit unexpectedly when printing to PDF (Microsoft Print to PDF) on sheets with many pictures — fixed for good.
- The
dvdExplain/dvdExplainEfunctions returned empty — fixed, and safe while printing. - Sign-in reported "Access denied" when writing
license.daton some machines — a fallback storage mechanism was added. - Error 403 when fetching the price list because of clock skew on the machine — the clock is now synchronised automatically.
- Find & Replace: the total was counted twice; Batch print: merged rows were squashed.
2.8.0 (2026-06-14)
A finished interface and experience: an Acrobat-style PDF markup set, the Assign Level command, a tooltip review across the whole ribbon, full light/dark theme coverage, ESC to stop a command, batch print rewritten.
✨ New features
🖍 PDF annotation (Read PDF) like Acrobat DC
- Markup drawing tools: freehand, line, arrow, rectangle, ellipse; cloud and polygon cloud outlines; self-closing polyline; Callout with a pointer arrow.
- Type text directly on the page, double-click to edit; drag the handle to resize the text box; 6-way alignment; change the font size / arrow size / cloud size; choose a line width of 1–10.
- Viewing: the toolbar becomes icon-based; zoom at the mouse pointer; hold the middle mouse button to auto-scroll; drag with the left button to move the page; the window maximises itself when it opens.
- Save / Save As also apply to the PDF file that is open (annotations are written into the file).
📑 PDF Manager
- Copy / paste pages between documents —
Ctrl+C/Ctrl+Vand the right-click menu. - A complete right-click menu: rotate / delete / split pages / insert a blank page.
- Export pages as images in PNG / JPG / TIFF at 200 dpi.
- Drag and drop images to make new PDF pages.
🔢 Assign Level command (new)
- Assign the Level by DESCRIPTION (AI) or by cell BACKGROUND COLOUR (pick from a sample palette) — replacing the earlier AI auto-detect level button.
➕ Insert Rows / Insert Columns
- Insert Rows and Insert Columns merged into a single 2-tab window.
💡 Tooltip review across the whole ribbon
- Reviewed and filled in the tooltips for every command on the ribbon — new users can see exactly what each command is for.
🎨 Full light / dark theme coverage
- The remaining windows moved to WPF and follow the light/dark theme: Sync Pro Connect, Admin, Formula Trace, 1D/2D/rebar cutting preview, Export Category.
- Every message and confirmation box follows the theme, with clear ✓ / ⚠ / ✖ icons.
- The PDF Manager and Navigation right-click menus follow the dark theme.
- Tabs, buttons and combo boxes share the same hover effect.
⛔ ESC stops the running command
- Hold ESC to stop the command that is running (30 heavy commands: AutoFit merged, delete rows, Batch Print…) — Excel no longer feels frozen.
🤖 Add / remove AI models yourself
- Add or remove an AI model for each provider (Gemini / OpenAI / Groq / NVIDIA) right inside Preferences — when a provider releases a new model you can use it immediately.
⌨️ Upgraded keyboard shortcuts
- Assign a key to any ribbon command (10 slots), and clear the default keys.
- A new standard key set (F3, F6, F8, Shift+F1, Alt+X/C/S…), with group keytips D1–D7 in order.
🔗 Join Text / Join Merged
- They use the separator character set in Preferences.
🖨 Batch print — a major upgrade
- No more phantom strikethrough on formula cells in the exported PDF.
- AutoFit merged rewritten: measured accurately by Excel itself (every font, every DPI), covering non-merged cells as well, with no more excess or missing row height.
- dvdPic pictures: several pictures on the same sheet no longer delete one another on export.
- The File and Print windows close automatically after you click Export PDF / Print.
🧪 TCVN test plan
- TCVN database rebuilt from the reference file (53 materials / 239 criteria, with the correct sampling standards).
- The Manage DB window gained check boxes for picking materials directly plus a Generate Sheet button.
- The generated sheet AutoFits row heights by itself.
🌐 Bilingual + Navigation + About
- Complete English–Vietnamese bilingual support: PDF Manager, Read PDF, AI Construction Estimate, Export Category…
- Navigation now renders correctly in the dark theme.
- The About window gained an author contact card with a portrait photo.
🐛 Bug fixes
- List Format (bullets / numbering / multilevel) — now applies to empty cells and formula cells, and skips hidden rows.
- Encoding — fixed cells being wiped blank when run on a multi-cell range.
- Fixed the Maps column being cut off in the Configure source ranges window (Quick Input).
2.7.9 (2026-06 — internal beta)
Automatic scheduling + refinements.
✨ New features
📈 A Gantt that lives with the data
- Automatic Gantt redraw when the data changes (switched on together with Auto Calc).
- An Auto Draw toggle to turn it on and off separately, plus lag protection (debounced, safe while you are typing).
- Gantt Chart detects the header and the data by itself — no selection needed.
- Faster Gantt drawing.
✂️ Rebar cutting
- Merged the configuration template (sheet 01) and numbered the sheets 00–07.
- Improved the 1D / 2D and rebar cutting algorithms, DXF export and preview.
🐛 Bug fixes
- Fixed the missing ribbon icons.
2.7.8 (2026-05-27)
Split into a 2-tier Standard / Pro license + 9 new Pro features + 5 new Standard utilities.
✨ New features — Pro tier (9 advanced commands)
🧪 Quality management (Pro / flag QaQc)
- Test Plan — generates the sheet "Bảng kế hoạch thí nghiệm vật liệu, sản phẩm, cấu kiện chính cho dự án" (project test plan for the main materials, products and components) from a selection containing material names. The output has the 7 columns used in the industry: No. / Material / Test criterion / Test standard / Sampling standard / Sample spec / Notes – Frequency.
- TCVN database with 100 materials × 599 criteria compiled from:
- The standard test plan (53 materials).
- QCVN 16:2023/BXD (national technical regulation on construction products and goods) + 12 appendices.
- The "Chỉ tiêu lấy mẫu của 56 vật liệu xây dựng" (sampling criteria for 56 construction materials) set.
- Custom database + backup: add or edit your own materials → saved to
%APPDATA%\DVDAddin\TCVN-Custom.json(survives a reinstall). Backup + Restore let you move the data between machines. - Import from Excel — reads a 7-column
.xlsxfile (compatible with both layouts, with or without a padding column A) → merges into the database; an existing material gains the new criteria, a new material creates a custom entry. There is a preview before you commit.
💰 Smart estimating (Pro / flag QuoteAi)
- AI Construction Estimate — builds a construction estimate automatically from the BoQ. The AI suggests a norm code for rows that are missing one, looks up the norms in TT10/2019 and ĐM1776, computes materials + labour + machinery × quantity, and applies overhead/profit. You enter your own Gemini/ChatGPT/Cerebras API key.
📊 Advanced scheduling (Pro / flag SchedulePro)
- AI Gantt Builder — generates a Gantt outline from the Bill of Quantities with AI: detects dependencies, estimates durations from the norms, and groups summary levels.
- EVM Report — Earned Value Management: PV / EV / AC / CV / SV / CPI / SPI / EAC plus an S-curve chart (Planned vs Earned vs Actual).
- 3-Week Lookahead — generates a look-ahead grid sheet (This week / Next week / The week after) for the weekly meeting with the site management team.
- Baseline + Compare — captures a snapshot of the original plan so that you can later compare "current vs baseline" and track schedule slippage. Up to 3 baselines are supported.
- Variance Dashboard — a summary table of the Planned vs Actual delta for every task, with conditional formatting (🟢 early / ⚪ on time / 🟡 slightly late / 🔴 badly late).
- Weekly snapshot + Trend — captures the schedule state every week (% complete / SPI / CPI / critical path) → combined into a trend chart for the board report.
- Schedule Recovery — when the schedule slips → proposes Crash / Fast-track / Re-sequence / Scope cut options with their cost/risk trade-offs.
✨ New features — Standard tier (5 productivity utilities)
- Bulk Find / Replace — a modeless dialog more powerful than
Ctrl+H: full .NET regex support, several rules running together, multiple sheets, save/load reusable JSON recipes. - Smart Data Cleaning — a wizard that cleans up data imported from a partner's file: trim whitespace, NBSP/zero-width space, blank rows, hidden rows, duplicates, standardise the date format, strip number formatting, leading apostrophe. Preview before Apply.
- Quick Input — an autocomplete popup while you type in a cell, fed by the source ranges registered in the workbook (stored in a CustomXMLPart that travels with the file). Multi-column populate when the source has several columns (pick an item → fill across, e.g. Code + Name + Unit).
- Explain formula (Coach) — the AI explains an Excel formula step by step for beginners, along with suggestions for optimising the formula.
- DVD Chat — a team AI chat workspace built right into the Excel side pane, letting you share context with colleagues through the workspace.
🔒 License + UX
- 2-tier license split: Standard (the basic plan) and Pro (Standard + the 9 advanced commands above).
- Grandfather plan: users who bought before 01/07/2026 get a free Pro upgrade until their current license expires.
- A 🔒 lock icon on the commands that need activation — click it and a dialog explains how to buy / renew / upgrade, with a detailed comparison of the two plans.
- State-aware UpgradeDialog: it tells two situations apart — "a Standard user clicks a Pro feature" (upgrade) vs "an expired/unactivated user clicks a paid feature" (buy/activate). It shows the matching tier tiles and features.
- The 30-day trial gets full Pro: the 🔒 is still shown to make users aware of the Pro tier; when the trial ends the account moves to Standard.
- Pro pricing from the server — the whole price list is read from the Cloudflare worker, not hard-coded in the client. Changing a price only needs
wrangler deployand clients update themselves.
🛠 Improvements + fixes
- Admin console supports choosing STANDARD / PRO when creating a license — type
1/2or the full name. - Library filenames normalised to ASCII:
Dinh Muc TT10.2019.xlsx,Dinh Muc 1776.xlsx,Ke hoach thi nghiem.xlsx(avoiding conflicts between PowerShell scripts and Vietnamese characters). NormLoader still falls back to the old names for existing installations. - Gate removed from
Create TitleandExplain→ they are now FREE (no license needed). - Fixed clipped content in the PurchaseDialog amber box "new prices will apply" — the dialog height is now 760px, enough to show the delta line as well.
- Fixed the UpgradeDialog banner so that it no longer wrongly says "Pro plan only" for a Standard feature when the license has expired.
- Fixed TCVN database dedup — duplicate criteria within the same material are merged (664 → 599 criteria, 26 materials cleaned up).
- Security: the server validates the edition on both admin endpoints (
POST /admin/licenses+POST /admin/signup-requests/:id/approve) — accepting both STANDARD and PRO and rejecting an invalid edition at the API layer instead of with a DB CHECK.
💸 2-tier pricing
Current — through 31/12/2026
| Configuration | Standard | Pro |
|---|---|---|
| 1 year × 1 PC | 500.000 đ | 890.000 đ |
| Lifetime × 1 PC | 1.500.000 đ | 2.690.000 đ |
| 1 year × 3 PCs | 1.350.000 đ | 2.400.000 đ |
| 1 year × 5 PCs | 2.200.000 đ | 3.920.000 đ |
| Lifetime × 3 PCs | 4.050.000 đ | 7.260.000 đ |
| Lifetime × 5 PCs | 6.600.000 đ | 11.840.000 đ |
⚠️ From 01/01/2027 — only the Standard price rises (1 year 690.000 đ, lifetime 1.990.000 đ). Pro keeps its price to encourage upgrades.
📚 Documentation
- 4 new guide pages for the Pro features: Test Plan, Advanced Scheduling, AI Construction Estimate, Work Calendar.
- 5 new guide pages for the Standard features: Bulk Find / Replace, Smart Data Cleaning, Quick Input, Explain formula (Coach), DVD Chat.
- Updated the sidebar and the commands index with a dedicated section for the Pro tier.
2.7.7 (2026-05-15)
The first stable release after the full C#/.NET 8 rewrite.
✨ New features
- Bilingual UI: toggle VI ↔ EN with the Switch Language button on the ribbon.
- AI Assistant: built-in AI chat + AI Explain / Grammarly / Solver.
- AI Translate: Gemini / ChatGPT / Groq / Cerebras with prompts tuned for construction (starter bar, lean concrete, ...).
- Construction Diary: a construction diary workflow following Nghị định 06/2021/NĐ-CP (Decree 06/2021 on construction quality management).
- Cutting Optimizer: 3 algorithms (First-Fit / Best-Fit / Genetic Algorithm) for rebar cutting.
- Connect Server: team data sync through the Cloudflare backend.
- Auto Click: record + replay a mouse/keyboard sequence.
- Transcribe Audio: speech-to-text via Gemini Vision.
- OCR: image / PDF scan → text via Gemini.
- License button hoisted: out of the About dropdown → 1 click instead of 2.
🐛 Bug fixes (compared with the earlier 2.7.x beta)
- Fixed the License dialog showing
(in 7 day(s))for a lifetime license (wrong JWT expiry fallback). - Fixed the Gemini
KeyNotFoundExceptionwhen the SAFETY filter blocks the output (robust JSON parsing). - Fixed Batch Print merging the PDF in the wrong order (alphabetical sort instead of iteration order).
- Fixed BiText.Pick splitting in the wrong place when the text itself contains "/" (Gantt checkbox, Translate dialog warning).
- Fixed Unprotect Sheet reporting "No sheet protection found" when the base64 salt contains "/" (the
[^/>]regex was too strict). - Fixed Setup not installing .NET 8 automatically when the user is sent setup.exe only (
ISSetupLocation0 → 2). - Fixed Translate dialog keyboard input leaking into the Excel cell (modeless STA thread).
- Fixed ComboBox typeahead matching the prefix only (
IsTextSearchEnabled) → substring filter. - Fixed license deactivation not clearing signing_salts on the server → re-activation failed with 403.
- Fixed admin-console.bat not showing the error body returned by the server (PS ErrorDetails parsing).
🔒 Security
- New license system: JWT RS256 + HMAC + clock-rollback anchor (hardening package 5).
- Per-install signing salt: HKDF-derived HMAC keys (package 4).
- OFFLINE_GRACE_DAYS = 1 (down from 14 — tightening).
📚 Documentation
- Fully bilingual documentation site: https://dvdaddin.dvdpm.net/
- 35 detailed command + workflow pages.
- 4 UDF function reference pages.
- 290 reference stubs auto-generated from RibbonLang.json.
💸 Pricing
| Term | 1 PC | 3 PCs | 5 PCs | 10 PCs |
|---|---|---|---|---|
| 1 year | 500.000 đ | 1.350.000 đ | 2.200.000 đ | 4.325.000 đ |
| 2 years | 830.000 đ | 2.240.000 đ | 3.650.000 đ | 7.180.000 đ |
| 3 years | 1.150.000 đ | 3.100.000 đ | 5.060.000 đ | 9.950.000 đ |
| Lifetime | 1.500.000 đ | 4.050.000 đ | 6.600.000 đ | 12.980.000 đ |
⚠️ From 01/01/2027 the new prices apply (about a 38% increase). Buy before that date to get the current price.
2.7.6 (2026-04 — internal beta)
- Setup installer built with InstallShield 2021 (instead of MSI-only).
- Major Upgrade removes the previous version automatically (Attributes=257).
- Excel-running guard (blocks the install while Excel is open).
2.7.0 — 2.7.5 (2026-Q1 — internal beta)
- Phase 5 — full migration to C# / .NET 8 / Excel-DNA.
- VBA
.xlamdropped completely. - Bilingual UI infrastructure (LocalizationManager).
- Modeless WPF dialogs (own STA thread).
2.x (Legacy, 2018-2024 — VBA .xlam)
- The original version, written in VBA and distributed as
DVDAddin.xlam. - Core features: Google translation, numbering, cell merging, a basic Gantt chart.
- Offline license (registry key).
- Unsupported since 2025 — we recommend migrating to 2.7.7.
Roadmap (plan)
2.8.x (Q3/2026)
- Advanced resource calendar for the Gantt: shift work, holidays for multiple countries.
- Plan vs Actual Gantt: two stacked bars for comparison.
- More languages: Indonesian, Thai, Khmer (requested by the South-East Asian market).
- Excel UDF caching layer: avoid re-calling the API when the referenced cells have not changed.
- Workflow templates: pre-configured workflow packs (acceptance, cost estimate, schedule) — one click sets up the full template.
2.9.x (Q4/2026)
- Power Query integration: the DVDAddin server as a data source.
- Mobile companion app (iOS/Android): take a site photo → upload and tag it automatically → sync back into Excel.
- Voice command (offline whisper): "Hey DVD, total this column" → the AI sums and formats it.
3.0 (2027)
- Open source backend: self-hostable Cloudflare Workers code.
- Plugin system: third-party developers can write extensions for DVDAddin.
- Marketplace: the community shares templates / formulas / workflows.
- Cross-platform: experiments with Excel for Mac / Excel on the web (Office.js — challenging).
Community suggestions
Vote for new features on GitHub Discussions: github.com/dangdvd/DVDAddin/discussions.
Current top requests:
- ⭐⭐⭐ Bash export (export Excel to a Markdown / HTML report).
- ⭐⭐⭐ MS Project import/export.
- ⭐⭐ An AI agent in "standby" mode (a background watcher that analyses the workbook).
- ⭐⭐ Inventory tracking module (material store).
- ⭐ Direct integration with Autodesk Construction Cloud / Revit cloud.
Report a bug / Feature request
- Email: [email protected]
- GitHub Issues: github.com/dangdvd/DVDAddin/issues
- GitHub Discussions: github.com/dangdvd/DVDAddin/discussions
Related
- Migration guide — the details of moving from xlam → xll.
- FAQ — frequently asked questions.
- Installation — install the latest release.