2016-10-17 37 views
6

Trong ứng dụng C# của tôi, tôi đang sử dụng ClosedXml .Excel để làm việc với các tệp excel. Tôi có một mẫu excel, nơi tôi thêm các template vào ứng dụng và thêm dữ liệu vào bảng excel và lưu excel như dưới đây,Định dạng hiện tại của excel được thay đổi trong phương thức Closedxml SaveAs

wb = new XLWorkbook(exportOption.FileName); 
--- 
if (wb.Worksheets.Count > 0) 
{ 
    for (int i = 0; i < wb.Worksheets.Count; i++) 
    { 
     using (var ws = wb.Worksheet(i + 1)) 
     { 
      if (ws.Visibility == XLWorksheetVisibility.Visible) 
      { 
       ws.SetTabActive(); 
       break; 
      } 
     } 
    } 
} 

try 
{ 
    wb.CalculateMode = XLCalculateMode.Auto; 
    wb.SaveAs(exportOption.FileName); 
} 

Sau khi lưu các thay đổi định dạng excel của tôi hoàn toàn thay đổi với tờ khác nữa. Ví dụ: Trong một trang tính, tôi có định dạng phần trăm thay đổi định dạng Ngày. Làm cách nào để giữ nguyên định dạng của excel và chỉ chèn dữ liệu vào các trang tính khác.

+1

Cho chúng tôi biết cách bạn đặt giá trị trong bảng tính. Ngoài ra tôi lấy nó, bạn không xác định bất kỳ định dạng tế bào, không rõ ràng thiết lập các định dạng tế bào tạo sự khác biệt? –

+0

Tôi có cùng một vấn đề. Tôi có một tập tin xlsm mà tôi chỉ cần mở và lưu với ClosedXML. Một số định dạng bị hủy và cũng có kích thước tệp nhỏ hơn. –

Trả lời

0

Phổ biến của nó đối với Excel bị lừa để xử lý các số dưới dạng ngày tháng (như dưới mui xe Excel lưu trữ ngày dưới dạng số). Để buộc các tế bào là một số không ngày thử:

ws.Cell(row,col).SetValue<double>(Convert.ToDouble(val)); 

Dưới đây là tài liệu chính thức về ClosedXML Cell Formatting. "# ##%" Nếu bạn cần duy trì định dạng theo phần trăm, ví dụ như chỉ đơn giản là thiết lập các định dạng tế bào:

ws.Cell(row, col).Style.NumberFormat.NumberFormatId = 10; 

hoặc chưa được kiểm tra

ws.Cell(row, col).Style.NumberFormat.Format = "0.0%"; 
+0

Cảm ơn câu trả lời. Trên thực tế tôi sẽ không biết định dạng được bao gồm trong bảng excel là gì. Vì vậy, vấn đề là khi tôi lưu excel trở lại tôi muốn bảo quản các định dạng được áp dụng trong bảng mà tôi không thao tác. – Sangeetha

+0

* Xin lỗi, tôi không hiểu 100%. * Bạn có thể vui lòng [sửa] câu hỏi của bạn để bao gồm ảnh chụp màn hình để hiển thị sự cố không? –

0

Bạn phải chọn Định dạng số ô từ ứng dụng của bạn trước khi lưu. CLosedXml là thư viện dựa trên thư viện OPENXML, do đó bạn phải áp dụng Biểu định kiểu excel OpenXml để thay đổi Định dạng số ô.

Đây là một Article có thể giúp bạn

Các vấn đề liên quan