出口WPF数据表格,以文本文件在一个漂亮的格式。文本文件必须以易于读取的
-
27-09-2019 - |
题
是有一个简单的方法来出口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
这并不奇怪,我使用的标签符,但我希望能做的更好。它肯定是很容易阅读的网格!我可以当然有一些逻辑以垫短值的空间,但是,这似乎相当混乱。我想可能有一个更好的办法。我也有一个感觉,这是一个普遍的问题,并一有可能得到解决之前(希望之内。净类)。
谢谢。
解决方案
我假设我们的目标是要为所见即所得成为可能。在这种情况下,我将:
- 通过循环的所有DataGridRows,并且为每一个建立一个串[]包含的数据显示在每个DataGridCell.这是容易多样的类型。为DataGridTemplateColumn则需要使用的结合,然后转换。ToString().
- 我也会跟踪最大串的长度在每个柱作为我这样做。
下一个步骤取决于出口型:
- Csv出口然后我会追加所有的字符串中的每个字符串[]内的报价与它们之间的逗号,并把它们写出来的。
- 对于一个普通的文本出口我会追加所有的字符串中的每个字符串[]填补空间为1+最大串的长度对于该列并把它们写出来的。
因为使用的实际DataGridRow,DataGridCell和样的目的是编写出什么的终端用户看到。例如你可以跳过隐藏列,适用于串格式的结合,荣誉的过滤/分组/排序等。
其他提示
我会用网格的Application.Copy功能,全选,然后在代码复制,那么你就可以解析剪贴板助手数据这是CSV,HTML和其他一些格式。
不隶属于 StackOverflow