2016-04-29 14 views
6
Sheet.get_Range(
"D2", 
string.Format("D{0}", MAX_ROWS)).Validation 
    .Add(E.XlDVType.xlValidateList, 
     Type.Missing, 
     E.XlFormatConditionOperator.xlBetween, 
     string.Join(",", CountryCollection.Select(x=>x.CountryName.Replace(",",")).ToArray())); 

Đoạn mã trên sẽ giúp tạo danh sách thả xuống trên tệp excel mới mở nhưng khi người dùng lưu trang tính, danh sách thả xuống sẽ biến mất. Những thay đổi mà người dùng thực hiện sẽ vẫn ở đó nhưng danh sách thả xuống sẽ biến mất. Bất kỳ ý tưởng?Danh sách thả xuống Microsoft Excel đã biến mất sau khi lưu?

CẬP NHẬT:

Hiện nay nghi ngờ lý do mà các DropDownList đã đi là do các mã dưới đây

void WB_BeforeSave(bool SaveAsUI, ref bool Cancel) 
{ 
    workSheet.get_Range(START_CELL, string.Format(END_CELL, MAX_ROWS)).Validation.Delete(); 
} 

Tôi đã thử nhận xét ra các mã trên để xác nhận sẽ không được đã xóa tuy nhiên, khi tôi cố gắng mở bảng excel theo cách thủ công, Microsoft Excel phát hiện rằng xác thực là nội dung không đọc được và nó sẽ tự động xóa nó.

+4

Bạn nên cung cấp thêm mã nguồn để giúp mọi người xác định sự cố. –

+3

Vui lòng cung cấp [MCVE] –

+0

cũng chia sẻ thư viện nổi trội mà bạn đang sử dụng – Patel

Trả lời

0

Hãy thử lưu excel ở định dạng .xlsx, một số hành vi sẽ không có hiệu lực nếu định dạng tệp chính xác không được chọn.

+0

Nó không hoạt động ở cả loại .xlsx' lẫn '.xls' là –

+0

là mà làm việc tốt khi u bằng tay lưu chúng? – tharif

+0

Có, nếu tôi tạo danh sách thả xuống theo cách thủ công thông qua phương thức 'xác thực' và lưu chúng theo cách thủ công, danh sách thả xuống sẽ được duy trì và truy cập. –

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