Phát triển tiện ích Office: VSTO cho Excel, Word và Outlook

Công việc vốn đã diễn ra trong Excel, Word và Outlook. Một tiện ích Office đưa logic của bạn vào đúng chỗ đó — một nút bấm và một bảng điều khiển trên thanh ribbon của chương trình mà nhân viên của bạn vẫn mở suốt cả ngày, kết nối với cơ sở dữ liệu của bạn, với API của bên khác, với một thư mục hoặc SharePoint. Không cần học thêm công cụ mới, và dữ liệu không phải rời khỏi công ty.

Công cụ sẵn có

Nằm trên thanh ribbon của Office, không phải một chương trình mới

Tiện ích xuất hiện như một thẻ trên thanh ribbon của Excel, Word, Outlook hoặc PowerPoint. Không có biểu tượng mới trên màn hình nền, không có tài khoản thứ hai, và không phải đào tạo cho một công cụ mà không ai yêu cầu.

Dữ liệu của bạn

Chạy trong Office đã cài đặt

Tiện ích chạy ngay trên máy tính, trên những tài liệu và thư đã có sẵn ở đó. Dữ liệu không phải gửi lên máy chủ của bên khác để được xử lý, và khi mất mạng thì mọi thứ không cần internet vẫn tiếp tục hoạt động.

Giá khởi điểm thấp hơn

Phần hạ tầng không phải trả tiền hai lần

Bộ cài đặt, chữ ký số, thanh ribbon và cơ chế cập nhật đều đã có sẵn và không được làm lại cho từng khách hàng. Bạn chỉ trả cho phần thuộc về mình. Vì sao lại như vậy.

Tôi làm tiện ích cho những chương trình Office nào

Tất cả đều là tiện ích VSTO cho Microsoft Office đã cài đặt trên Windows. Trường hợp của bạn là loại nào và khối lượng công việc ra sao sẽ rõ sau bản đặc tả.

Excel

Những thao tác trên bảng tính vốn phải làm bằng tay: kiểm tra và chuẩn hóa dữ liệu nhập, tính toán theo quy tắc của bạn, xuất sang định dạng của bên khác, gửi một dòng hoặc cả bảng sang hệ thống khác.

Word

Tài liệu được dựng theo quy tắc thay vì gõ lại: điền từ cơ sở dữ liệu hoặc API, ghép và tách tệp, xử lý số liệu và bảng biểu, làm cho hình ảnh và định dạng đồng nhất trong toàn bộ tài liệu.

Outlook

Phần lớn nhất trong công việc của tôi với Office. Phân loại và lọc thư theo quy tắc của bạn, tự động lưu tệp đính kèm vào đúng chỗ, ghi thư hoặc cuộc họp sang hệ thống khác, thông báo và nhắc nhở quanh các cuộc họp.

PowerPoint

Bài trình bày được nạp từ dữ liệu thay vì làm thủ công: thay ảnh và chữ theo mẫu, làm các trang chiếu đồng nhất, chuẩn bị cùng một nội dung ở nhiều phiên bản.


Tiện ích có thể kết nối với những gì

Đây là danh sách những gì tôi có thể xây dựng, không phải danh sách tùy chọn để đánh dấu. Tiện ích của bạn thực sự làm gì sẽ được chốt trong bản đặc tả — mỗi kết nối được tính giá theo khối lượng công việc mà nó mang lại.

  • API và dịch vụ của bên khác. Tiện ích gửi và lấy dữ liệu từ hệ thống ERP, CRM của bạn hoặc bất kỳ dịch vụ nào có API: đăng nhập, gửi tài liệu, kiểm tra trạng thái, tải danh mục mã.
  • Cơ sở dữ liệu. Đọc và ghi trực tiếp từ Office, trên cơ sở dữ liệu sẵn có trong mạng nội bộ hoặc trên máy chủ. Nếu bản thân cơ sở dữ liệu là vấn đề thì đó là công việc riêng và được xử lý riêng.
  • Tệp và thư mục. Lưu vào vị trí đã thỏa thuận theo quy tắc đặt tên, đọc các tệp đầu vào, xử lý cả thư mục cùng lúc, xuất ra định dạng mà bên kia yêu cầu.
  • SharePoint và thư viện dùng chung. Tài liệu được đưa từ Office vào nơi công ty vẫn lưu hồ sơ, với các trường đã điền sẵn, thay vì phải kéo thả bằng tay.
  • Thư điện tử. Lọc nâng cao, phân loại và các quy tắc mà Outlook tự nó không làm được, trả lời tự động theo điều kiện, trích dữ liệu từ thư và ghi sang hệ thống khác.

Vì sao tiện ích rẻ hơn phần mềm riêng

Mỗi chương trình được cài đặt đều mang theo một lớp công việc không liên quan gì đến logic của bạn: bộ cài đặt, ký số, thanh ribbon với các nút và bảng điều khiển, ghi nhận lỗi, và cơ chế đề nghị phiên bản mới khi khởi động. Với phần mềm theo yêu cầu, lớp đó được làm lại và được tính tiền.

Với tiện ích Office thì không. Phần đó đã có sẵn và được gọi là Veseteo — nền tảng của tôi cho các tiện ích VSTO, trên đó mọi công trình của tôi trong Office đã được xây dựng. Bạn chỉ trả cho phần thuộc về mình: các thao tác, các bảng điều khiển, các kết nối tới dữ liệu của bạn và những quy tắc mà công việc tuân theo.

Tên Veseteo chỉ còn lại như chữ ký của nền tảng. Thẻ trên thanh ribbon, các biểu tượng và tên lệnh đều mang tên và cách gọi của bạn, vì đó là thứ nhân viên của bạn nhìn thấy mỗi ngày.


Giá

Một tiện ích cho Excel, Outlook hoặc Word bắt đầu từ 20.000 RSD, trong khi ứng dụng máy tính theo yêu cầu bắt đầu từ 90.000 RSD. Khác biệt không nằm ở khối lượng công việc trên logic của bạn mà ở chỗ phần hạ tầng không phải làm lại. Con số này là mức sàn, vì phạm vi phụ thuộc vào số thao tác, số tích hợp và số trường hợp ngoại lệ — giá và thời hạn chính xác bạn nhận được sau bản đặc tả. Xem thêm những gì không nằm trong giá.

Bước đầu tiên

Bản đặc tả được trả tiền và đặt trước tiên. Nó gồm những gì và vì sao lại bắt đầu từ đó.

Những chỉnh sửa nhỏ trên tiện ích đang chạy không cần đi qua toàn bộ quy trình: cho những việc đó có tính theo giờ, trả tiền cho thời gian đã bỏ ra. Bảng giá đầy đủ nằm ở trang giá.


Bước đầu tiên: đặc tả và ước lượng

Tôi không đưa giá cố định cho một tiện ích mới chỉ tồn tại trong câu „chúng tôi cần một nút trong Outlook để xử lý việc này". Vì vậy chúng ta bắt đầu bằng bản đặc tả: giá cố định và một tài liệu viết ra, thuộc về bạn dù chúng ta có tiếp tục hay không.

Với tiện ích Office, tài liệu này trả lời năm điều:

  • Tiện ích làm gì. Danh sách các lệnh và bảng điều khiển, viết bằng những câu mà người sử dụng hiểu được, chứ không chỉ lập trình viên.
  • Nó kết nối với cái gì. Cơ sở dữ liệu, API của bên khác, thư mục, SharePoint, hộp thư — từng kết nối một, vì phần lớn công việc thường ẩn ở đó.
  • Cài đặt ở đâu. Số máy tính, các phiên bản Office, 32 hay 64 bit, có dùng phiên làm việc từ xa hay không, ai có quyền cài đặt.
  • Giai đoạn và ước lượng. Cái gì vào lần bàn giao đầu tiên và cái gì có thể để sau, kèm ước lượng thời gian cho từng giai đoạn.
  • Cái gì không đáng làm. Nếu một phần công việc đã được giải quyết bằng một tùy chọn sẵn có của Office hoặc một quy tắc đơn giản, tài liệu sẽ ghi đúng như vậy.

Bản đặc tả là một hạng mục riêng với giá riêng và được đặt ngay, vì phạm vi và thời hạn của nó đã biết trước:

Khoản này được trừ vào giá công việc nếu chúng ta tiếp tục. Nếu không tiếp tục, tài liệu vẫn thuộc về bạn và bạn có thể mang nó tới bất kỳ nhà thầu nào.


Tôi cam kết những gì


Những gì không nằm trong giá

Tôi viết điều này để bạn hiểu giá trước khi đặt hàng, chứ không phải sau đó. Mọi thứ trong danh sách tôi đều có thể làm, nhưng được thỏa thuận và tính tiền riêng.


Cần chuẩn bị gì trước khi bắt đầu


Đây không phải là gì

Để bạn không phải trả tiền cho bản đặc tả của một công việc vốn có trang riêng và giá riêng.

Không phải chương trình đứng độc lập

Khi công việc không thuộc về Office mà cần cửa sổ riêng, một dịch vụ chạy nền hoặc kết nối với thiết bị, thì đó là phát triển phần mềm theo yêu cầu. Tiện ích sống bên trong Office và dừng cùng với Office; một chương trình thì không.

Không phải macro trong tài liệu

Macro VBA đi kèm trong tệp, bị mất khi chia sẻ tệp và mỗi người dùng lại có phiên bản riêng. Tiện ích được cài trên máy tính, giống nhau với mọi người và được cập nhật từ một chỗ. Tôi cũng có thể chuyển một macro sẵn có thành tiện ích.

Không phải tích hợp AI

Nếu trong Office cần một trợ lý trên tài liệu của bạn hoặc xử lý bằng mô hình ngôn ngữ, thì đó là tích hợp trí tuệ nhân tạo, với phân tích riêng và giá riêng. Ở đây làm bản thân tiện ích.

Không phải phần mềm bán sẵn

Những tiện ích mua xong tải về ngay nằm trong mục sản phẩm, với giá cố định và không phải chờ đợi. Ở đây làm những gì một tiện ích như vậy không bao phủ — công việc theo yêu cầu của bạn, theo quy trình và các ngoại lệ của bạn.


Câu hỏi thường gặp

Nó chạy trong Office đã cài đặt trên Windows. Tôi kiểm thử trên Windows 11 và Windows 10 với bản Microsoft 365 dành cho máy tính, và dự kiến cũng chạy trên Office 2019, 2016 và 2013. Hỗ trợ cả bản 64-bit và 32-bit. Office trên web và Office cho Mac không nằm trong phạm vi — với chúng có một loại tiện ích khác, được nói đến bên dưới.

Biết trước thì tốt, vì chỉ cần hai lần bấm chuột để kiểm tra và điều đó đi vào bản đặc tả. Bản thân tiện ích tôi làm để chạy được trên cả hai. Khác biệt chỉ trở nên quan trọng khi phải dùng thư viện hoặc trình điều khiển của bên khác vốn chỉ có ở một dạng — và khi đó tôi nói trước khi bắt đầu bất cứ việc gì.

Bạn nhận được bộ cài đặt, khi cần thì có cả MSI, chạy trên máy tính và sau đó thẻ tự xuất hiện trên thanh ribbon của Office. Bộ cài được ký số, nên khi cài đặt Windows không hiện cảnh báo về nhà phát hành không xác định. Phiên bản mới, khi chúng ta thỏa thuận như vậy, sẽ tự kiểm tra lúc khởi động Office và đề nghị cập nhật.

Cài đặt chỉ cho người dùng hiện tại thì không cần quyền quản trị, nên nhân viên tự chạy được. Cài đặt cho mọi người dùng trên máy thì cần quản trị viên. Ở những công ty có máy bị khóa cấu hình, việc này thường do bộ phận IT của bạn làm, và tôi đưa cho họ bộ cài kèm hướng dẫn; nếu không có bộ phận như vậy thì chỉ cần một người có mật khẩu quản trị.

Không nhất thiết. Với số lượng máy lớn tôi làm bản cài đặt im lặng, có thể triển khai từ mạng nội bộ hoặc qua chính sách nhóm của miền, nên mọi thứ được làm cùng lúc. Điều đó được ghi trong bản đặc tả, vì nó thay đổi cách đóng gói và cần một lần kiểm thử tại chỗ bạn trước khi triển khai cho tất cả.

Tiện ích VSTO được cài trên máy Windows và có quyền truy cập đầy đủ: ổ đĩa, ổ mạng, thiết bị, thư viện của bên khác, mọi thứ Office làm được. Office Web Add-in được xây bằng công nghệ web, chạy cả trong trình duyệt lẫn trên Mac, nhưng quyền truy cập máy tính bị giới hạn có chủ đích và nó cần một máy chủ để phục vụ. Ở đây tôi làm VSTO, vì phần lớn những công việc kiểu này dựa đúng vào những gì bản web không được phép làm.

Bạn chưa chắc mình cần tiện ích hay một chương trình?

Hãy mô tả công việc trong vài câu — ai làm, trong chương trình nào và mắc ở chỗ nào. Tôi sẽ cho bạn biết giải pháp là một tiện ích trong Office, một chương trình riêng hay một thứ hoàn toàn khác.

Gửi yêu cầu

Tôi thường trả lời trong cùng ngày.

Phát triển tiện ích Office: tiện ích VSTO trên thanh ribbon của Microsoft Office