Tài liệu HotXLS

Bảng màu tùy chỉnh

Tổng quan

Sổ làm việc Excel quản lý định dạng màu bằng hai mô hình: bảng màu chỉ mục 56 màu cũ hơn trong BIFF8 (XLS cổ điển) và liên kết RGB tùy ý hoặc khe chủ đề trong OpenXML (XLSX); HotXLS cung cấp các API để tùy chỉnh chỉ số ánh xạ bảng màu và kết nối suôn sẻ sự khác biệt giữa các định dạng này

Lập chỉ mục màu bảng màu

Định dạng BIFF8 ánh xạ màu định dạng đến các mục chỉ mục từ 8 đến 63; sử dụng giao diện màu sổ làm việc để ghi đè các định nghĩa màu mặc định

procedure SetColor(const AIndex: Integer; const AColor: TColor);

Nếu bạn gán trực tiếp giá trị RGB tùy chỉnh cho một ô mà không cập nhật chỉ mục bảng màu, HotXLS sẽ tự động ánh xạ nó đến màu gần nhất trong bảng màu đang hoạt động của sổ làm việc

Phân giải màu chỉ mục tất định

IXLSWorkbook và TXLSXWorkbook phơi bày các overload ResolveIndexedColor tương ứng để diễn giải một chỉ mục mà không làm thay đổi workbook

Phía gọi khai báo không gian chỉ mục nguồn là ColorIndex công khai, icv của BIFF, hay indexed của OOXML; kết quả phân biệt rõ token bảng màu, automatic, system và không hợp lệ, và chỉ báo cáo giá trị ARGB đã chuẩn hóa khi có màu cụ thể

Các token system và automatic không bao giờ đọc ngầm desktop hiện tại; hãy truyền một resolver màu hệ thống tường minh khi cần đầu ra RGB phụ thuộc môi trường

Vai trò sử dụng (usage role) giữ nguyên ý nghĩa riêng của từng định dạng, chẳng hạn chỉ mục viền BIFF bằng 0 nghĩa là chưa xác định chứ không phải màu đen

Dùng NearestIndexedColor khi một giá trị RGB cần được ánh xạ về mục bảng màu vật lý gần nhất; bộ khớp OKLab có cache dùng chung trả về cả chỉ mục công khai lẫn vật lý mà không thay đổi workbook

Dùng ScanIndexedColorUsage để lấy bảng kê 56 khe tất định trước khi lập kế hoạch thay đổi bảng màu; các định nghĩa và tham chiếu từ style, đối tượng worksheet, biểu đồ, comment và định dạng có điều kiện sẽ đánh dấu các khe bị ảnh hưởng là khóa

Lập kế hoạch bảng màu không biến đổi

Dùng BuildBiffPalettePlan để xem trước cách RGB trực tiếp và màu chủ đề đã phân giải có thể vừa vào 56 khe bảng màu vật lý của BIFF mà không thay đổi workbook

Kế hoạch này giữ nguyên mọi khe chỉ mục được báo là khóa, giữ màu chính xác sẵn có ở khe khớp thấp nhất, gán màu chính xác trong khi còn dung lượng, và chỉ dùng phân cụm OKLab tất định có trọng số tần suất khi số đích phân biệt vượt quá số khe trống

Mỗi đích báo cáo chỉ mục công khai và vật lý đã chọn, giá trị ARGB đã ánh xạ, trọng số tần suất, khoảng cách cảm nhận bình phương, và trạng thái khớp chính xác; các trường tổng hợp báo cáo trọng số chính xác, sai số có trọng số, sai số lớn nhất, số khe đã đổi, và có cần lượng tử hóa hay không

Thế hệ và hash của bảng màu nguồn giúp ApplyBiffPalettePlan từ chối kế hoạch cũ hoặc bị can thiệp trước khi khe nào thay đổi; một lần áp dụng thành công chỉ dựng lại bộ khớp có cache một lần, còn kế hoạch no-op hợp lệ giữ nguyên thế hệ

Workbook cổ điển còn phơi bày BiffPaletteSavePolicy; giá trị mặc định giữ nguyên bảng màu lịch sử, còn giá trị tối ưu hóa tường minh chỉ dựng và áp dụng kế hoạch hiện tại cho đầu ra BIFF8, và khôi phục bảng màu gốc nếu việc lưu thất bại hoặc bị hủy

Ánh xạ màu RGB phong phú

Sổ làm việc XLSX bỏ qua các giới hạn bảng màu và cho phép gán trực tiếp các giá trị RGB 24-bit; xem các API chuyển đổi màu bên dưới