--- title: Hướng dẫn xuất file word dựa trên template tags: dev, ms-word description: Hướng dẫn xuất file word dựa trên template --- <style> html, body, .ui-content { background-color: #333; color: #ddd; } .markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 { color: #ddd; } .markdown-body h1, .markdown-body h2 { border-bottom-color: #ffffff69; } .markdown-body h1 .octicon-link, .markdown-body h2 .octicon-link, .markdown-body h3 .octicon-link, .markdown-body h4 .octicon-link, .markdown-body h5 .octicon-link, .markdown-body h6 .octicon-link { color: #fff; } .markdown-body img { background-color: transparent; } .ui-toc-dropdown .nav>.active:focus>a, .ui-toc-dropdown .nav>.active:hover>a, .ui-toc-dropdown .nav>.active>a { color: white; border-left: 2px solid white; } .expand-toggle:hover, .expand-toggle:focus, .back-to-top:hover, .back-to-top:focus, .go-to-bottom:hover, .go-to-bottom:focus { color: white; } .ui-toc-dropdown { background-color: #333; } .ui-toc-label.btn { background-color: #191919; color: white; } .ui-toc-dropdown .nav>li>a:focus, .ui-toc-dropdown .nav>li>a:hover { color: white; border-left: 1px solid white; } .markdown-body blockquote { color: #bcbcbc; } .markdown-body table tr { background-color: #5f5f5f; } .markdown-body table tr:nth-child(2n) { background-color: #4f4f4f; } .markdown-body code, .markdown-body tt { color: #eee; background-color: rgba(230, 230, 230, 0.36); } a, .open-files-container li.selected a { color: #5EB7E0; } </style> # Tạo template - B1: Tạo một file word soạn sẵn các nội dung sau đó định nghĩa các biến có dạng {TEN_BIEN} rồi thay thế lần lượt vào các chỗ sẽ lấy dữ liệu từ hệ thống để điền vào ![](https://i.imgur.com/4ifu2NQ.png) - B2: Chọn <b>File/Save as</b> rồi chọn File format với định dạn là <i>Word 2003 XML document (.xml)</i> rồi save ra một file có dạng .xml ![](https://i.imgur.com/6vXUKs7.png) # Code - B1: Load template là file có dạng .xml từ bước tạo template thành String Builder (do nội dung dài nên ko nên đọc ra string mà dùng String Builder sẽ đảm bảo về hiệu năng và ko bị lỗi tràn bộ nhớ) - B2: Dựa vào tên các biến sẽ replace thành nội dung lấy từ hệ thống để điền vào (Chú ý khi thiết kế template với các dạng bảng biểu hoặc các chương mục phải tuân thủ style của office để bind data cho chuẩn) - Sau khi đã điền xong dữ liệu thì save lại thành một file trên server với dạng *.docx và cho phép client tải về <b><i><u>NOTE:</u></i></b> Ngoài ra cũng có thể dùng cách tạo template trên word rồi export ra html và build một page theo đúng style đó (xử lý bind data giống như replace để xuất word) để client có thể view trước khi download, rồi sau đó export page đó thành *.pdf hoặc dùng thư viện Html2OpenXml (nuget) để export thành file word