出口WPF数据表格,以文本文件在一个漂亮的格式。文本文件必须以易于读取的

StackOverflow https://stackoverflow.com/questions/3049887

是有一个简单的方法来出口WPF数据表格,以文本文件。csv的文件?我已经做了一些搜查和不可以看到,有一个简单的数据表格的方法来这样做。我已经得到的东西的工作(仅)通过使用该视图可以是一的数据表格.在我的情况下,这是一系列的结构。我做了些什么StreamWriters和StringBuilders(详细信息可用),基本上具有:

StringBuilder destination = new StringBuilder();
destination.Append(row.CreationDate);
destination.Append(seperator);  // seperator is '\t' or ',' for csv file
destination.Append(row.ProcId);
destination.Append(seperator);
destination.Append(row.PartNumber);
destination.Append(seperator);

我这样做是为每个结构中的阵列(在一个循环)。这一工作正常。问题是,这并不容易阅读的文本文件。数据可以长度不同,在同一栏。我想看到的东西,如:2007-03-03 234238423823 823829923 2007-03-03 66 99 当然,我得到的东西,如:2007-03-03 234238423823 823829923 2007-03-03 66 99

这并不奇怪,我使用的标签符,但我希望能做的更好。它肯定是很容易阅读的网格!我可以当然有一些逻辑以垫短值的空间,但是,这似乎相当混乱。我想可能有一个更好的办法。我也有一个感觉,这是一个普遍的问题,并一有可能得到解决之前(希望之内。净类)。

谢谢。

有帮助吗?

解决方案

我假设我们的目标是要为所见即所得成为可能。在这种情况下,我将:

  1. 通过循环的所有DataGridRows,并且为每一个建立一个串[]包含的数据显示在每个DataGridCell.这是容易多样的类型。为DataGridTemplateColumn则需要使用的结合,然后转换。ToString().
  2. 我也会跟踪最大串的长度在每个柱作为我这样做。

下一个步骤取决于出口型:

  • Csv出口然后我会追加所有的字符串中的每个字符串[]内的报价与它们之间的逗号,并把它们写出来的。
  • 对于一个普通的文本出口我会追加所有的字符串中的每个字符串[]填补空间为1+最大串的长度对于该列并把它们写出来的。

因为使用的实际DataGridRow,DataGridCell和样的目的是编写出什么的终端用户看到。例如你可以跳过隐藏列,适用于串格式的结合,荣誉的过滤/分组/排序等。

其他提示

我会用网格的Application.Copy功能,全选,然后在代码复制,那么你就可以解析剪贴板助手数据这是CSV,HTML和其他一些格式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top