2016-10-11 2 views
2

У меня есть пробл с добавлением строк в существующую таблицу, в моем приложении im манипулирование файлом слов. в моем шаблоне (файл слова) есть allready таблица с 8 строками, не включая заголовок (вы можете видеть на картинке), при создании нового текстового файла в моем приложении иногда я хочу добавить больше строк в таблицу, потому что возможно, у меня есть больше данных для вставки (данные из DataGridView). как в коде ниже, им добавление строк в соответствии с тем, сколько строк у меня есть с моей DataGridView, спрашивая это:Добавить строки в существующую таблицу в текстовом файле (файл doc) с помощью DocX dll

using (DocX document = DocX.Load(filename)) 
{ 
    int k = 0; 

    Table t = document.Tables[0]; 

    // Specify some properties for this Table. 
    t.Alignment = Alignment.right; 

    if (howManyRows > t.RowCount) 
    { 
     int x = howManyRows - t.RowCount; 
     for (int i = 0; i < x; i++) 
     { 
      Row row = t.InsertRow();    
     } 
    }  

и я попытался также просто: t.InsertRow();

, а затем им заселять мой стол в слове файл из моего dataGridView, а затем я получаю необработанный индекс исключений вне диапазона, что не имеет смысла, потому что если im не добавляет строки, просто заполняя таблицу тем же номером строк с тем же кодом, я не получаю исключения и таблица работает нормально, это код, который я сделал для заполнения из списка строк из dataGridView:

for (int i = 1; i <=howManyRows; i++) 
{ 
    for (int j = 4; j >= 0; j--) 
    { 
     t.Rows[i].Cells[j].Paragraphs.First().Append(dataFromDataGrid[k]).FontSize(11).Font(new FontFamily("Arial")); 
     k++; 
    } 
} 
document.Save(); 

я думаю, им не добавляя строки, как должно быть сделано, потому что, если им не работает в моем цикле, пока:

for (int i = 1; i <howManyRows; i++) 

не нравится:

for (int i = 1; i <=howManyRows; i++) 

, как я сделал ниже, им получать эту таблицу : как видно из рисунка, в строках нет ячеек и границ. Возможно, это проблема, о которой я не знаю.

My Word Table

ответ

0

я нашел link

и конкретно часть о

this.Tables[1].set_Style("Table Grid 8");

попробовать часть стиля.

также, это link, который показывает полный пример, который использует

table.Borders 

который выглядит как то, что вы ищете :)

веселит

eiran

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