我需要创建基于文本的报告(.txt格式),其中包括页眉,页脚,页码等。这与使用COBOL编写报告的方式类似。
是否有人知道允许.NET应用程序使用的任何库或第三方工具?
我不打算使用Reporting Services或其他任何东西。我只是想创建一个数据集,然后创建我自己的报告,这些报告格式很好,并且在列之间正确间隔。
今天,我通过在我的应用程序中包含Powershell的format-table命令来实现这一点(没有标题,页码,页脚)。它似乎可以很好地格式化我的报告,而不必担心间距等,我可以轻松地对列进行排序。
任何帮助或指示都将不胜感激。
答案 0 :(得分:0)
我倾向于查看一些.NET based templating engines。我之前使用过模板引擎(虽然不是在.NET中),我认为它们可以很好地满足您的要求。
在这里看看有关它们的SO的一些问题,这样你就可以了解人们会推荐什么。例如,看看;
答案 1 :(得分:0)
您不需要第三方库来完成您的需要。您只需循环遍历Collection
,然后为每条记录添加分隔符。然后将string
写为具有相应header
的回复。
以下是一个示例,但该概念与任何类型的Collection
或List
类型保持相关。
这是一个示例DataTable扩展方法,它将其转换为字符串,以便使用可选的分隔符进行输出。
public static string GetStringSeperatedBy(this DataTable dt, string delimiter)
{
var sb = new StringBuilder();
var columnNames = dt.Columns.Cast<DataColumn>().Select(column => string.Format("\"{0}\"", column.ColumnName)).ToArray();
sb.AppendLine(string.Join(delimiter, columnNames));
foreach (DataRow row in dt.Rows)
{
var fields = row.ItemArray.Select(field => string.Format("\"{0}\"", field.ToString().Replace(Environment.NewLine, " ").Replace("\"", ""))).ToArray();
sb.AppendLine(string.Join(delimiter, fields));
}
return sb.ToString();
}