如何将数据集导出到记事本?
Posted
技术标签:
【中文标题】如何将数据集导出到记事本?【英文标题】:How to Export DataSet to notepad? 【发布时间】:2016-10-04 06:58:58 【问题描述】:如何将数据集(多个数据表)导出到记事本。来自c#
注意:NOT A SINGLE DataTable ,Multiple DataTables From DataSet;
【问题讨论】:
哪种格式? (xml, csv, json) 转成.txt, html, and ,xpf 格式到我需要导出的这些 如果我理解你的回复,如果我们选择txt格式导出类将生成一个包含所有数据集信息的txt文件(以简单的矩阵格式),如果我们设置xml输出导出类将生成表示数据集信息的 xml,如果我们想导出到 xpf,导出类将生成与 txt 文件相同的输出,但输出到 xpf 文件中? @h herzi 我不明白 你想导出到.txt文件,这意味着一个简单的输出不是数据集中的xml:表1:...表2:...而不是xml数据 【参考方案1】:我会建议一些简单的东西,创建一个翻译器或下载网络上可用的一堆其他库。
你最想去
public interfacte IExport
bool Export(Databale sometable);// this can also reference interface
//concrete implementation could also handle saving of file
然后调用具体类来实现该值,使用工厂模式、依赖注入等来提供具体类型。然后,您可以继续添加任意数量的转换器,以支持任意数量的文件类型。
【讨论】:
哪些是我需要下载的库,我搜索了很多我只有数据表导出到记事本,而不是数据集(超过 2 个数据表)到单个记事本 首先您可以在数据表上使用for循环,也可以microsoft c# has a witeXml method,对于txt,使其为CSV格式以便于传递,您可以检查Microsoft also has an easy Creating Xps Document,还有一个简单的代码示例在*** 关于如何创建文件。【参考方案2】: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 谢谢好的回答,它对我来说很好,它对我的大部分报告都有帮助以上是关于如何将数据集导出到记事本?的主要内容,如果未能解决你的问题,请参考以下文章