Как экспортировать DataSet (несколько из Datatables) в блокнот. От C#Как экспортировать DataSet в блокнот?
Примечание: НЕ ЕДИНСТВЕННЫЙ DataTable, несколько DataTables из DataSet;
Как экспортировать DataSet (несколько из Datatables) в блокнот. От C#Как экспортировать DataSet в блокнот?
Примечание: НЕ ЕДИНСТВЕННЫЙ DataTable, несколько DataTables из DataSet;
private void Write(System.Data.DataSet dts, string outputFilePath)
{
System.Data.DataTable dt = new System.Data.DataTable();
for (int z = 0; z < dts.Tables.Count; z++)
{
dt = dts.Tables[z];
int[] maxLengths = new int[dt.Columns.Count];
for (int i = 0; i < dt.Columns.Count; i++)
{
maxLengths[i] = dt.Columns[i].ColumnName.Length;
foreach (DataRow row in dt.Rows)
{
if (!row.IsNull(i))
{
int length = row[i].ToString().Length;
if (length > maxLengths[i])
{
maxLengths[i] = length;
}
}
}
}
using (StreamWriter sw = new StreamWriter(outputFilePath, true))
{
for (int i = 0; i < dt.Columns.Count; i++)
{
sw.Write(dt.Columns[i].ColumnName.PadRight(maxLengths[i] + 2));
}
sw.WriteLine();
foreach (DataRow row in dt.Rows)
{
for (int i = 0; i < dt.Columns.Count; i++)
{
if (!row.IsNull(i))
{
sw.Write(row[i].ToString().PadRight(maxLengths[i] + 2));
}
else
{
sw.Write(new string(' ', maxLengths[i] + 2));
}
}
sw.WriteLine();
}
sw.Close();
}
}
}
@ swetha благодарит хороший ответ, он отлично работает для меня, это полезно для большинства моих отчетов –
Я предлагаю что-то простое, создаю переводчика или загружаю кучу других библиотек, доступных в Интернете.
вы бы больше всего хотели идти
public interfacte IExport
{
bool Export(Databale sometable);// this can also reference interface
//concrete implementation could also handle saving of file
}
затем вызвать на конкретный класс для реализации этого значения используйте Injection Factory Patter, зависимости и т.д., чтобы поставить конкретный тип. Затем вы можете добавлять столько конверторов для поддержки как можно большего количества типов файлов.
которые являются библиотеками, которые мне нужно скачать, я много искал, я получил только datatable экспорт в блокнот, а не dataSet (hving более 2 datatables) в один блокнот –
Сначала вы можете использовать цикл for на datatable, также [ microsoft C# имеет метод witeXml] (https://msdn.microsoft.com/en-us/library/x3zy2whb (v = vs.110) .aspx), для txt, сделать его CSV-формат для более легкой передачи, [Microsoft также имеет простой документ создания XPS] (https://msdn.microsoft.com/en-us/library/ms771596 (v = vs.100) .aspx), который вы можете проверить, также есть простой пример кода в [Stackoverflow ] (http://stackoverflow.com/questions/352540/how-to-create-an-xps-document) о том, как создать файл. – mahlatse
Какой формат? (xml, csv, json) –
to .txt, html, и, xpf Формат для них мне нужно экспортировать –
Если я понимаю ваш ответ, если мы выберем формат txt, то класс экспорта будет генерировать txt-файл со всей информацией набора данных (в простом матричном формате), если мы установим вывод xml, класс экспорта будет генерировать xml, который представляет информацию набора данных, и если мы хотим экспортировать в xpf, то класс экспорта будет генерировать тот же результат, что и файл txt, но в файл xpf? –