我正在准备一份报告,我需要对系统中的每个用户进行分类。大约有15K用户。
因此,我将浏览每个用户,检查它们的各种条件,并根据条件将每个用户分配到列表中。
大约有8-9个列表,这意味着系统中大约有8-9个用户类别。
现在我需要以一些易于理解的格式报告这些用户。我在想一个CSV文件,其中的列代表那些8-9个类别,在每个列标题下,我将拥有该列表中的用户。
我可以将所有这些列表写入CSV,但随后它们会出现在另一个之下。我不知道如何以表格格式编写它们以便于阅读和理解。
E.g。让我们考虑一下我有三类用户。
category1: abc, def, ghi
category2: lmn, opq, rst
category3: uvw, xyz, adf
所以我的输出应该如下:
category1 category2 category3
abc lmn uvw
def opq rst
uvw xyz adf
我对其他建议以及如何以易于理解的格式输出结果持开放态度。
答案 0 :(得分:0)
出于导出数据目的或存储在数据库中,您只能使用一种格式:
user category
user1 category1
user1 category2
user2 category1
user2 category2
Excel和任何其他报告平台都可以将此数据转换为所需的格式 - 例如
user category1 category2 category3
user1 x x
user2 x x
答案 1 :(得分:0)
如果您将在Excel中使用这些CSV,我相信您现在拥有的格式是理想的。
为了输出结果,可以这样:
// Get categories with all users in it
// and get max count in a category across all categories
List<List<Category>> categories = GetCategoriesWithUsers();
int maxUsersInCategory = categories.Max(x => x.Count);
using (StreamWriter writer = new StreamWriter("output.csv")
{
// Loop through each user per category
for (int userCount = 0; userCount < maxUseresInCategory; userCount++)
{
string outputLine = string.Empty;
// Loop through each category
foreach(List<Category> category in categories)
{
// If category end isn't reached, add user
if (category.Length > userCount)
{
outputLine += category[userCount];
}
outputLine += ",";
}
outputLine = outputLine.Remove(outputLine.Length - 1);
writer.WriteLine(outputLine);
}
}