TextWriter:需要从数据库中获取数据到 excel
TextWriter: Need to fetch data from DB to excel
我正在处理从数据库中读取数据(从数组 (String[] getPersons
) 作为输入)并将其写入 excel 文件的要求。我遇到了一个场景,在 DB 中,我的 DepartmentID 值为 1,2,3 e.t.c。其中 1 代表 CSE,2 代表 ECE,3 代表 IT e.t.c。
现在,下面的代码正在获取 DepartmentId 的数字,而我需要有相应的部门来获取数字。
var container = db.GetContainer(containerId);
var q = container.GetItemLinqQueryable<Student>();
var requests = q.Where(p => getStudents.Contains(p.StudentName)).ToFeedIterator();
using (var ms = new MemoryStream())
{
TextWriter tw = new StreamWriter(ms);
foreach (var request in requests)
{
tw.WriteLine($"{request.DepartmentId},{request.StudentName}");
}
tw.Flush();
await ms.CopyToAsync(response.FileContent).ConfigureAwait(false);
}
请注意,DB 中没有 DepartmentName 字段(也无法添加),我需要以某种方式将 DepartmentId 转换为相应的 DepartmentNames,然后将其写入 excel 。有没有办法做到这一点?我愿意接受建议。
提前致谢!!!
如果您拥有所有部门,如果它们无法以其他方式提供,您总是可以对它们进行硬编码。
创建翻译方法:
private static string GetDepartmentName(int id)
{
switch(id)
{
case 1:
return "CSE";
case 2:
return "ECE";
case 3:
return "IT";
default:
throw new NotImplementedException("No such id!");
}
}
然后您可以在您的代码中使用它:
using (var ms = new MemoryStream())
{
TextWriter tw = new StreamWriter(ms);
foreach (var request in requests)
{
tw.WriteLine($"{GetDepartmentName(request.DepartmentId)},{request.StudentName}");
}
tw.Flush();
await ms.CopyToAsync(response.FileContent).ConfigureAwait(false);
}
然后只需在“GetDepartmentName”方法中添加所有其他部门。
希望这有效,如果没有,请告诉我我错过了什么。
我正在处理从数据库中读取数据(从数组 (String[] getPersons
) 作为输入)并将其写入 excel 文件的要求。我遇到了一个场景,在 DB 中,我的 DepartmentID 值为 1,2,3 e.t.c。其中 1 代表 CSE,2 代表 ECE,3 代表 IT e.t.c。
现在,下面的代码正在获取 DepartmentId 的数字,而我需要有相应的部门来获取数字。
var container = db.GetContainer(containerId);
var q = container.GetItemLinqQueryable<Student>();
var requests = q.Where(p => getStudents.Contains(p.StudentName)).ToFeedIterator();
using (var ms = new MemoryStream())
{
TextWriter tw = new StreamWriter(ms);
foreach (var request in requests)
{
tw.WriteLine($"{request.DepartmentId},{request.StudentName}");
}
tw.Flush();
await ms.CopyToAsync(response.FileContent).ConfigureAwait(false);
}
请注意,DB 中没有 DepartmentName 字段(也无法添加),我需要以某种方式将 DepartmentId 转换为相应的 DepartmentNames,然后将其写入 excel 。有没有办法做到这一点?我愿意接受建议。 提前致谢!!!
如果您拥有所有部门,如果它们无法以其他方式提供,您总是可以对它们进行硬编码。
创建翻译方法:
private static string GetDepartmentName(int id)
{
switch(id)
{
case 1:
return "CSE";
case 2:
return "ECE";
case 3:
return "IT";
default:
throw new NotImplementedException("No such id!");
}
}
然后您可以在您的代码中使用它:
using (var ms = new MemoryStream())
{
TextWriter tw = new StreamWriter(ms);
foreach (var request in requests)
{
tw.WriteLine($"{GetDepartmentName(request.DepartmentId)},{request.StudentName}");
}
tw.Flush();
await ms.CopyToAsync(response.FileContent).ConfigureAwait(false);
}
然后只需在“GetDepartmentName”方法中添加所有其他部门。
希望这有效,如果没有,请告诉我我错过了什么。