2014-10-13 3 views
2

Я создаю книгу с рабочим листом и таблицей. Впоследствии я хочу изменить заголовок заголовка для каждого столбца. Я уже пробовал разные способы, но когда я открываю xmls-файл, excel показывает сообщение об ошибке (после нажатия на файл восстановления, который открывается). Может, кто-то может дать подсказку. Вот пример, где я создаю 2 файла, один открывается, а другой - проблема. Я использую последнюю версию lib:Переименовать заголовок таблицы ClosedXML

public class Test 
{ 
    public string Test1 { get; set; } 
    public string Test2 { get; set; } 
} 

public void MyTest() 
{ 
    List<Test> testList = new List<Test> 
    { 
     new Test{Test1 = "T1",Test2 = "T2"}, 
     new Test{Test1 = "T1",Test2 = "T2"} 
    }; 

    var wb1 = new XLWorkbook(); 
    var ws = wb1.Worksheets.Add("Mysheet"); 
    ws.Cell(1, 1).InsertTable(testList); 
    wb1.SaveAs(@"C:\Test\Test1.xlsx"); 

    var wb2 = new XLWorkbook(); 
    var ws2 = wb2.Worksheets.Add("Mysheet"); 
    var tb2 = ws2.Cell(1, 1).InsertTable(testList); 
    const string newHeader = "TestNew"; 
    for (int i = 0; i < tb2.Fields.Count(); i++) 
    { 
     tb2.Field(i).Name = string.Format(
      "{0} {1}", 
      newHeader, 
      i 
      ); 
    } 
    wb2.SaveAs(@"C:\Test\Test2.xlsx"); 
} 

ответ

2

Возможно, в ClosedXML обнаружена ошибка. Когда вы меняете Field(...).Name, он меняет только отображаемое значение ячейки с заголовком столбца, но не имя поля в фактическом табличном коде. (Вы можете проверить, что при открытии Test2.xlsx в виде архива и посмотреть на xl\worksheets\sheet.xml и xl\tables\table.xml.)

Here является обсуждение этой ошибки. Автор ClosedXML утверждает, что он исправлен, но я протестировал его с последней версией и все еще получил ошибку.

Вы должны размещать его здесь и уточняться у автора.

+0

Я открыл дискуссию там: https://closedxml.codeplex.com/discussions/569120 Большое спасибо в любом случае – xandi1987

0

Я связался с ними, и кажется, что они исправили эту ошибку в исходном коде, но не в выпуске. Большое вам спасибо за ваш интерес по этому вопросу.

+0

Это, кажется, больше ответ на мой ответ, чем ответ в своем собственном праве. Но спасибо за информацию. – Raidri

+0

Прошу прощения. Вы совершенно правы :) – xandi1987

Смежные вопросы