powered by simpleCommunicator - 2.0.27     © 2024 Programmizd 02
Map
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / DocX is a .NET library
6 сообщений из 6, страница 1 из 1
DocX is a .NET library
    #40024132
mtv_72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите мне как я могу и могу ли в бесплатной версии библиотеки DocX вставить таблицу по поиску текста и замене его на вставляемую таблицу. В конец документа вставляется и все тут. Что не делаю.
Таблица формируется динамически и средствами этой же библиотеки.
Написала проц. но она все равно вставляет в конец документа
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
    /// <summary>
    ///Добавить таблицу в конец с данными
    /// </summary>
    /// <param name="wSize">Колличество строк</param>
    /// <param name" hSize">Колличество столбцов</return>
    /// <param name" Mdata">Массив с данными</return>
    /// <param name" Mnastr">Массив с настройками [кол.строк, 0..2], где [0]-размер шрифта;[1]-форматирование текста;[2]-жирность</return>
    /// <param name" mark">Слово метка по замене которого вставляется таблица</return>
    public void InsTableMark(int wSize, int hSize, object[,] Mdata, object[,] Mnastr, float[] witchCol,string mark)
    {
        Table tbl = wrd.AddTable(wSize, hSize);
        tbl.Alignment = Alignment.center;
        tbl.Design = TableDesign.TableGrid;
        for (int i = 0; i < wSize; i++)
        {
            for (int j = 0; j < hSize; j++)
            {
                switch (Mnastr[i, 1].ToString())
                {
                    case "centr":
                        if (Convert.ToBoolean(Mnastr[i, 2]) == true)
                            tbl.Rows[i].Cells[j].Paragraphs[0].Append(Mdata[i, j].ToString()).Font("Arial").FontSize(Convert.ToInt32(Mnastr[i, 0])).Bold().Alignment = Alignment.center;
                        else
                            tbl.Rows[i].Cells[j].Paragraphs[0].Append(Mdata[i, j].ToString()).Font("Arial").FontSize(Convert.ToInt32(Mnastr[i, 0])).Alignment = Alignment.center;
                        break;
                    case "left":
                        if (Convert.ToBoolean(Mnastr[i, 2]) == true)
                            tbl.Rows[i].Cells[j].Paragraphs[0].Append(Mdata[i, j].ToString()).Font("Arial").FontSize(Convert.ToInt32(Mnastr[i, 0])).Bold().Alignment = Alignment.left;
                        else
                            tbl.Rows[i].Cells[j].Paragraphs[0].Append(Mdata[i, j].ToString()).Font("Arial").FontSize(Convert.ToInt32(Mnastr[i, 0])).Alignment = Alignment.left;
                        break;
                    case "right":
                        if (Convert.ToBoolean(Mnastr[i, 2]) == true)
                            tbl.Rows[i].Cells[j].Paragraphs[0].Append(Mdata[i, j].ToString()).Font("Arial").FontSize(Convert.ToInt32(Mnastr[i, 0])).Bold().Alignment = Alignment.right;
                        else
                            tbl.Rows[i].Cells[j].Paragraphs[0].Append(Mdata[i, j].ToString()).Font("Arial").FontSize(Convert.ToInt32(Mnastr[i, 0])).Alignment = Alignment.right;
                        break;
                }
            }
            if (witchCol != null)
            {
                tbl.AutoFit = AutoFit.ColumnWidth;
                tbl.SetWidths(witchCol);
                //tbl.SetWidthsPercentage(witchCol, 500);
            }
            else
                tbl.AutoFit = AutoFit.Contents;
        }
        wrd.InsertParagraph(mark).InsertTableAfterSelf(tbl);
    }
...
Рейтинг: 0 / 0
DocX is a .NET library
    #40024443
mtv_72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Странно, раньше охотнее помогали
Я разобралась и может кому то нужно будет как мне :)
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
 
       int ind = findBookmarksInd(mark);
        Paragraph pr = null;
        foreach (var parag in wrd.Paragraphs)
        {
            pr = parag;
            parag.FindAll(mark).ForEach(index => parag.InsertParagraphAfterSelf(mark).InsertTableAfterSelf(tbl));
        }
        wrd.ReplaceText(mark, "");
...
Рейтинг: 0 / 0
DocX is a .NET library
    #40024455
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mtv_72
Странно, раньше охотнее помогали
возможно, раньше вы размещали вопрос в более соответствующем подфоруме, а также более внятно формулировали проблему, чем
mtv_72
вставить таблицу по поиску текста и замене его на вставляемую таблицу
я так и не смог расшифровать эту фразу, а задавать кучу встречных вопросов не хватило времени и желания
...
Рейтинг: 0 / 0
DocX is a .NET library
    #40024549
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mtv_72,

как помочь то? вы не удосужились даже написать, с помощью какой библиотеки вы работаете с файлом. Тут экстрасенсов нет, может вы OpenXML используйте, может какой-нибудь EPPlus или еще чего.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
DocX is a .NET library
    #40137110
mtv_72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtes,
я в начале пишу же
бесплатной версии библиотеки DocX
...
Рейтинг: 0 / 0
DocX is a .NET library
    #40137626
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mtv_72
Roman Mejtes,
я в начале пишу же
бесплатной версии библиотеки DocX


через полтора года так прямо отбрила ткскыть чайника
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / DocX is a .NET library
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]