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

我有以下代码将 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 组件中以创建一些图表。有什么帮助吗?


守着一只汪
浏览 105回答 1
1回答

富国沪深

根据我的评论和作者的一些代码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 ) ){&nbsp; &nbsp; csv.WriteRecords( results);&nbsp; &nbsp; writer.Flush();&nbsp; &nbsp; stream.Position = 0;&nbsp; &nbsp; var text = reader.ReadToEnd();}(从这里开始)现在您已经有了作为文本块的 CSV 文件,我们可以这样从控制器返回它:public ActionResult DownloadCSV(){&nbsp; &nbsp; return Content(yourCsvString, "text/csv");}
打开App,查看更多内容
随时随地看视频慕课网APP