Tôi có một Mẫu Excel với các trang tính khác nhau mà tôi đang lấy dữ liệu được lấy từ SQL Server bằng cách sử dụng OpenXML, C#. Sau khi tôi hoàn tất việc bán dữ liệu, tôi cần ẩn một số trang tính dựa trên các điều kiện. Tôi không thể tìm thấy bất kỳ đoạn mã nào để ẩn một trang tính cụ thể bằng cách sử dụng C# OpenXML.Làm thế nào để ẩn một trang tính trong Excel bằng cách sử dụng OpenXML C#?
Tôi đã thử những điều sau nhưng các trang tính không bị ẩn.
byte[] byteArray = File.ReadAllBytes("D:\\rptTemplate.xlsx");
using (MemoryStream mem = new MemoryStream())
{
mem.Write(byteArray, 0, (int)byteArray.Length);
using (SpreadsheetDocument rptTemplate = SpreadsheetDocument.Open(mem, true))
{
foreach (OpenXmlElement oxe in (rptTemplate.WorkbookPart.Workbook.Sheets).ChildElements)
{
if(((DocumentFormat.OpenXml.Spreadsheet.Sheet)(oxe)).Name == "ABC")
((DocumentFormat.OpenXml.Spreadsheet.Sheet)(oxe)).State = SheetStateValues.Hidden;
}
rptTemplate.WorkbookPart.Workbook.Save();
}
}
Yêu cầu trợ giúp về điều này.
Cảm ơn.
Thanks a lot. Điều này làm việc. :-) – Raghu
Tôi đã thử cùng một mã, Đã qua quá trình gỡ lỗi từng dòng, mọi thứ đều hoạt động tốt. Nhưng sau khi thực thi mã. Khi tôi mở tập tin Excel không ẩn. Bạn có thể giúp tôi được không? –
@NarendraKumar: Rất khó để giúp đỡ nếu không biết cấu trúc chính xác của tài liệu excel của bạn và tên của các bảng excel của bạn. Bạn có bao nhiêu tấm? – Hans