2013-03-28 30 views
8

Trong khi tôi đang cố gắng mở tệp excel, hộp thông báo sẽ nhắc như "Chúng tôi đã tìm thấy sự cố với một số nội dung trong tên tệp. Bạn có muốn chúng tôi Nếu bạn tin tưởng nguồn của sổ làm việc này, hãy bấm Có. ". Những gì thực sự làm là tôi có một mẫu excel được thiết kế và sao chép các tập tin vào tập tin khác và tạo tập tin tạm thời Tôi đang chèn dữ liệu vào tập tin tạm thời bằng cách sử dụng OPEN XML và dữ liệu đang nhận được từ cơ sở dữ liệu.Mở tệp excel sẽ nhắc hộp thông báo "khôi phục nội dung của sổ làm việc"

tôi đã thử các giải pháp cung cấp trong mạng nhưng những sửa chữa không được giải quyết issue.My excel của tôi là 2010

enter image description here

enter image description here

giải pháp Bất cứ ai cung cấp được nhiều đánh giá cao.

+0

Đây không phải là một vấn đề mã hóa và sẽ không thể để sửa chữa từ mục đích này. –

+0

bạn có thể cho biết lý do tại sao nó không thể sửa chữa? –

+0

@dineshHaraveer Bạn có thể giải quyết vấn đề này không? Như tôi cũng phải đối mặt với cùng một vấn đề – Pratik

Trả lời

3

Tôi gặp sự cố này. Nó được gây ra bởi cách tôi đã lưu trữ số và dây trong các tế bào. Các số có thể được lưu trữ đơn giản như cell.CellValue = new CellValue("5"), nhưng đối với văn bản không phải là số, bạn cần thay đổi kiểu dữ liệu ô thành SharedString, chèn chuỗi trong bảng SharedString và sau đó đặt chỉ mục bảng đó vào ô, như được giải thích tại đây: http://msdn.microsoft.com/en-us/library/office/cc861607.aspx

string text = "Non-numeric text."; 
cell.DataType = new EnumValue<CellValues>(CellValues.SharedString); 
var sharedStringTable = document.WorkbookPart.GetPartsOfType<SharedStringTablePart>().First().SharedStringTable; 
var item = sharedStringTable.AppendChild(new SharedStringItem(new Text(text))); 
cell.CellValue = new CellValue(item.ElementsBefore().Count().ToString()); 
0

Một vài trường hợp có thể gây ra loại lỗi:

  • tên trang tính của bạn dài hơn 31 ký tự
  • You have characters không hợp lệ trong tên sheet
  • Bạn hav các ô có giá trị dài hơn 32k
0

Một nguyên nhân khác có thể là vượt quá số kiểu ô tối đa.

Bạn có thể định nghĩa:

  • lên đến 4000 phong cách trong một workbook .xls
  • lên đến 64000 phong cách trong một bảng tính .xlsx

Trong trường hợp này bạn nên sử dụng lại cùng một kiểu ô cho nhiều ô, thay vì tạo kiểu ô mới cho mỗi ô.

0

tôi thêm cellReference phải và cố định vấn đề này cho tôi:

string alpha = "ABCDEFGHIJKLMNOPQRSTUVQXYZ"; 
for (int colInx = 0; colInx < reader.FieldCount; colInx++) 
{ 
    AppendTextCell(alpha[colInx] + "1", reader.GetName(colInx), headerRow); 
} 

private static void AppendTextCell(string cellReference, string cellStringValue, Row excelRow) 
{ 
    // Add a new Excel Cell to our Row 
    Cell cell = new Cell() { CellReference = cellReference, DataType = new EnumValue<CellValues>(CellValues.String) }; 
    CellValue cellValue = new CellValue(); 
    cellValue.Text = cellStringValue.ToString(); 
    cell.Append(cellValue); 
    excelRow.Append(cell); 
} 
+0

Tôi vừa nhận được closedXml và không có vấn đề gì với nó. Ngoài ra nó dễ dàng hơn nhiều. – Yuri

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