Primo Chalice Ответов: 2

Как экспортировать данные datagrid в XML-файл?


Привет,

У меня есть DataGrid, и я хочу экспортировать его данные в XML с пользовательскими тегами.

Например, строка, имеющая "заголовок полной страницы", будет иметь <h1></h1> бирка и так далее. Что мне нужно, так это условные метки.

Пожалуйста помочь.

Что я уже пробовал:

На данный момент ничего так как я не могу продолжать

Maciej Los

Связывается ли ваш DataGridView с источником данных? Если да, то какой источник данных: BindingSource, DataTable, DataSet?

Primo Chalice

Это набор данных

2 Ответов

Рейтинг:
2

Primo Chalice

private DataTable GetDataTableFromDGV(DataGridView dgv)
{
var dt = новый DataTable();
foreach (столбец DataGridViewColumn в dgv.Columns)
{
если (столбец.видимый)
{
// Вы потенциально можете назвать столбец на основе имени столбца DGV (остерегайтесь дураков)
// или назначьте тип на основе типа данных данных, привязанных к этому столбцу DGV.
ДТ.Столбцы.Добавить();
}
}

object[] cellValues = новый объект[dgv.Columns.Рассчитывать];
по каждому элементу (ячейки datagridviewrow строку в dgv.Строк)
{
for (int i = 0; i < row.Ячейки.Граф; i++)
{
значения ячеек[i] = строка.Ячейки[i].значение;
}
dt.Rows.Add(значения ячеек);
}
возврат dt;
}



Я использовал этот код, и он работал, но я хочу иметь пользовательские теги для определенных столбцов. Как мне это сделать?

Wendelius

Не уверен, правильно ли я это понимаю, но если вы хотите добавить какую-то специальную информацию в столбцы, вы можете использовать расширенные свойства. Рассмотреть следующее:

         System.Data.DataTable table = new System.Data.DataTable("TheTable");

         table.Columns.Add("Col1", typeof(string));
         table.Columns.Add("Col2", typeof(string));

         table.Columns["Col2"].ExtendedProperties.Add("MyProp", "Important column");


         table.Rows.Add("A", "B");
         table.Rows.Add("C", "D");

         table.WriteXml("C:\\test.xml", System.Data.XmlWriteMode.WriteSchema);

Primo Chalice

Это именно то, что мне было нужно. Это работает :). Я чувствую облегчение. Еще один вопрос. Здесь я ввожу данные в строки вручную. Но у меня уже есть 13 столбцов, и у меня есть данные там. Итак, как мне прочитать предварительно заполненные данные и поместить их в table.Rows.Add()?

Wendelius

Вы имеете в виду, что у вас уже есть данные в таблице данных? Если да, то взгляните на объект DataTable.Метод Слияния (System.Data)[^]

Рейтинг:
16

Maciej Los

Мацей Лос:

Связывается ли ваш DataGridView с источником данных? Если да, то какой источник данных: BindingSource, DataTable, DataSet?
Примо Чаша:

Это набор данных


В этом случае самый простой способ-использовать: набор данных.Метод WriteXml (System.Data)[^] и Набора данных.Метод Readxml (Системы.Сведения)[^]


Wendelius

Точно, а 5

Maciej Los

Спасибо, Мика.