为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 Web API 控制器发送 csv 格式的数据以响应客户端以创建可视化

如何从 Web API 控制器发送 csv 格式的数据以响应客户端以创建可视化

C#
守着一只汪 2023-07-09 09:49:20
我有以下代码将 EF 输出转换为 CSV 文件(并将其保存到服务器端然后返回):   List<LearningActionMonitoringDTO> results = _context       .LearningActionProgressUpdates       .Include(la => la.LearningAction)       .Where(la => la.LearningActionId == actionId)       .Select(la => new LearningActionMonitoringDTO       {           Title = la.LearningAction.Title,           Progress = la.Progress,           ProgressDate = la.DateCreated.ToString("g"),       }).ToList();   using (var csv = new CsvWriter(new StreamWriter("CSVfiles/Actors.csv")))   {       csv.WriteRecords(results);   }   FileInfo f = new FileInfo("CSVfiles/Actors.csv");   return f;我想知道是否可以返回resultsCSV 格式而不先将其保存到服务器。我需要将 CSV 文件中的数据输入到 React 组件中以创建一些图表。有什么帮助吗?
查看完整描述

1 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

根据我的评论和作者的一些代码CsvWriter(假设它是同一个 CSV 库),要将其写入字符串,您需要执行以下操作:


using( var stream = new MemoryStream() )

using( var reader = new StreamReader( stream ) )

using( var writer = new StreamWriter( stream ) )

using( var csv = new CsvWriter( writer ) )

{

    csv.WriteRecords( results);

    writer.Flush();

    stream.Position = 0;

    var text = reader.ReadToEnd();

}

(从这里开始)


现在您已经有了作为文本块的 CSV 文件,我们可以这样从控制器返回它:


public ActionResult DownloadCSV()

{

    return Content(yourCsvString, "text/csv");

}


查看完整回答
反对 回复 2023-07-09
  • 1 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信