Редактирование существующих HTML-таблиц через .NET API

Aspose.HTML for .NET загружает существующий HTML-файл в объект HTMLDocument . Найдите таблицу с помощью CSS-селектора, измените её ячейки и стили через DOM, добавьте или удалите строки и сохраните полный документ, не создавая заново остальное содержимое.


Редактирование таблицы в HTML-файле на C#

В следующем примере открывается файл input.html, выбирается первая таблица, изменяется первая ячейка данных, добавляется строка, обновляется CSS таблицы и результат сохраняется в файл edited-table.html.

Код C# для редактирования HTML-таблицы

using Aspose.Html;
using System;

// Load the HTML document that contains the table
using HTMLDocument document = new HTMLDocument("input.html");

// Select the first table and verify that it exists
HTMLTableElement table = (HTMLTableElement)document.QuerySelector("table");
if (table == null)
{
    throw new InvalidOperationException("The HTML document does not contain a table.");
}

// Update the first data cell when one is available
HTMLTableCellElement firstCell = (HTMLTableCellElement)table.QuerySelector("td");
if (firstCell != null)
{
    firstCell.TextContent = "Updated value";
}

// Append a row and populate its cells
HTMLTableRowElement newRow = (HTMLTableRowElement)table.InsertRow(table.Rows.Length);
string[] values = { "New item", "Ready" };
foreach (string value in values)
{
    HTMLTableCellElement cell = (HTMLTableCellElement)newRow.InsertCell(newRow.Cells.Length);
    cell.TextContent = value;
}

// Apply CSS without replacing the table's other attributes
table.Style.SetProperty("border", "1px solid #808080");
table.Style.SetProperty("border-collapse", "collapse");
table.Style.SetProperty("width", "100%");

// Save the complete modified document
document.Save("edited-table.html");

Как отредактировать HTML-таблицу

  1. Откройте исходный файл с помощью конструктора HTMLDocument .
  2. Найдите нужную таблицу методом QuerySelector() . Если документ содержит несколько таблиц, используйте селектор по ID или классу вместо table.
  3. Выберите существующую ячейку и измените её TextContent, не заменяя остальную разметку таблицы.
  4. Добавьте строку методом InsertRow() и создайте ячейки методом InsertCell() .
  5. Измените оформление через свойство Style таблицы и вызовите Save() , чтобы записать полный обновлённый документ.

Возможности редактирования HTML-таблиц

  • Выбор нужной таблицы. Используйте селекторы #orders, .price-table или main table, если в документе находится несколько таблиц.
  • Изменение существующего содержимого. Обновляйте текст ячеек, атрибуты, классы и встроенные стили CSS без повторного создания таблицы и замены остального HTML.
  • Изменение структуры таблицы. Добавляйте и удаляйте строки и ячейки через табличные DOM-интерфейсы с сохранением их порядка в документе.
  • Современное оформление. Применяйте CSS для границ, ширины, выравнивания и отступов вместо устаревших атрибутов представления HTML.
  • Сохранение окружающего содержимого. При сохранении загруженного HTMLDocument содержимое за пределами изменённой таблицы остаётся в документе. Для извлечения полных элементов таблиц используйте руководство Извлечение HTML-таблиц .

Документация по редактированию HTML-таблиц

В руководстве Редактирование HTML-документа приведены примеры поиска, вставки, изменения и удаления DOM-узлов. Раздел HTML DOM объясняет навигацию по документу и модель элементов для программного изменения HTML-содержимого.


Установка Aspose.HTML for .NET

Установите Aspose.HTML for .NET из NuGet с помощью .NET CLI:

dotnet add package Aspose.HTML

Также можно использовать интерфейс диспетчера пакетов NuGet или выполнить Install-Package Aspose.HTML в консоли диспетчера пакетов. Подробные инструкции приведены в руководстве по установке . Чтобы протестировать API без ограничений ознакомительной версии, запросите временную лицензию .


Часто задаваемые вопросы о редактировании HTML-таблиц

1. Как изменить конкретную HTML-таблицу, если на странице их несколько?

Назначьте целевой таблице постоянный ID или класс и передайте соответствующий CSS-селектор, например [id="orders"] или .price-table, методу QuerySelector(). Общий селектор table возвращает только первую таблицу документа.

2. Можно ли изменить ячейку, не заменяя всю таблицу?

Да. Выберите нужный элемент <td> или <th> и задайте его TextContent для обычного текста. Если ячейка должна содержать вложенную разметку, измените её дочерние DOM-узлы или используйте InnerHTML с доверенным содержимым.

3. Как добавить или удалить строки HTML-таблицы на C#?

Вызовите InsertRow() с нужным индексом строки, а затем добавьте ячейки методом InsertCell(). Для удаления используйте DeleteRow() и предварительно проверьте индекс по значению Rows.Length.

4. Следует ли изменять оформление таблицы с помощью HTML-атрибутов или CSS?

Для границ, ширины, выравнивания, отступов, цветов и других параметров представления используйте CSS. Атрибуты align, border и cellspacing относятся к устаревшей модели оформления HTML и не подходят для современной разметки.

5. Сохраняется ли остальной HTML-документ при редактировании таблицы?

Да. Если загрузить исходный файл в HTMLDocument, изменить только выбранные узлы таблицы и сохранить этот документ, остальные элементы останутся в результате. Намеренная замена родительского элемента или его InnerHTML также заменит его дочерние узлы.

Связанные операции с HTML-таблицами

Создавайте таблицы, извлекайте полную разметку или получайте значения ячеек с помощью руководств Aspose.HTML for .NET.