出口的ListView到CSV [英] Export ListView to CSV
本文介绍了出口的ListView到CSV的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是任何人都知道一个体面的CSV导出工具从一个ListView出口?我在疯狂地获取项目更新出来,功能蔓延意味着我没有时间让这最后的的迫切的功能来实现自己。
Is anyone aware of a decent CSV export tool for exporting from a ListView? I'm in a mad rush to get a project update out and feature creep means I don't have time to get this final urgent feature implemented myself.
推荐答案
这不是一个很大的功能,我会说,除非你有一些非常奇怪的要求...但在这种情况下,也许没有外部工具可以帮助您反正。
That's not a big feature I'd say, unless you have some very odd requirements... but in this case, probably, no external tool can help you anyway.
下面是我会怎样处理这个问题:
Here is how I would approach the problem:
class ListViewToCSV
{
public static void ListViewToCSV(ListView listView, string filePath, bool includeHidden)
{
//make header string
StringBuilder result = new StringBuilder();
WriteCSVRow(result, listView.Columns.Count, i => includeHidden || listView.Columns[i].Width > 0, i => listView.Columns[i].Text);
//export data rows
foreach (ListViewItem listItem in listView.Items)
WriteCSVRow(result, listView.Columns.Count, i => includeHidden || listView.Columns[i].Width > 0, i => listItem.SubItems[i].Text);
File.WriteAllText(filePath, result.ToString());
}
private static void WriteCSVRow(StringBuilder result, int itemsCount, Func<int, bool> isColumnNeeded, Func<int, string> columnValue)
{
bool isFirstTime = true;
for (int i = 0; i < itemsCount; i++)
{
if (!isColumnNeeded(i))
continue;
if (!isFirstTime)
result.Append(",");
isFirstTime = false;
result.Append(String.Format("\"{0}\"", columnValue(i)));
}
result.AppendLine();
}
}
这篇关于出口的ListView到CSV的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文