Tôi đã tìm kiếm và tìm kiếm trên trang web để tìm câu trả lời nhưng tôi không thể tìm thấy giải pháp - ở mọi nơi mọi người chủ yếu thảo luận cách thêm định dạng số cho tài liệu và áp dụng nó.Cách lấy giá trị ô với định dạng được áp dụng (giá trị ô được định dạng) bằng OpenXML SDK
Điều tôi cần là nhận giá trị ô dưới dạng chuỗi có định dạng được áp dụng - tức là chuỗi giống như được Excel hiển thị.
Tôi đã nhận thấy rằng không có cách nào dễ dàng hoặc chức năng tích hợp sẵn sẽ trả về giá trị được định dạng readymade cho một ô.
Vì vậy, có vẻ như với tôi rằng để có được giá trị tôi cần phải làm hai việc: 1. Nhận chuỗi định dạng. 2. Định dạng giá trị ô bằng chuỗi này.
Nhưng tôi gặp sự cố với cả hai bước.
Người ta có thể dễ dàng có được dụ CellFormat mà sẽ chứa NumberFormatId:
CellFormat cellFormat = (CellFormat) document.WorkbookPart.WorkbookStylesPart.Stylesheet.CellFormats.ElementAt(cell.StyleIndex);
Nhưng làm thế nào để có được những chuỗi định dạng với NumberFormatId này, nếu id tương ứng với một trong các định dạng được xác định trước tiêu chuẩn? (nghĩa là dưới 160) Chúng không có trong tài liệu bảng tính và tôi không thể tin rằng chúng phải được mã hóa cứng trong ứng dụng.
Ngoài ra, một khi chuỗi định dạng bằng cách nào đó được lấy, cách áp dụng nó vào giá trị ô? Cho đến nay tôi hiểu, mã nên kiểm tra loại giá trị ô và nếu là số - chuyển đổi nó thành chuỗi bằng cách sử dụng chuỗi định dạng.
Tôi tìm thấy this page đề cập đến việc sử dụng Microsoft.Office.Excel.Interop, nhưng tôi chỉ muốn ở lại với OpenXML SDK. Nhìn chung, tôi rất ngạc nhiên khi thấy rất khó để tìm ra câu trả lời dứt khoát cho câu hỏi này trên Web vì tôi nghĩ rằng đây sẽ là điều mà nhiều nhà phát triển cần trong công việc hàng ngày của họ.
Tìm một số mã đẹp ở đây: http://joymonscode.blogspot.se/2013/10/reading-excel-cell-with-number.html –