使用 silverlight 4 和 c# 创建 CSV 下载
Posted
技术标签:
【中文标题】使用 silverlight 4 和 c# 创建 CSV 下载【英文标题】:Create a CSV download using silverlight 4 and c# 【发布时间】:2011-06-29 13:14:21 【问题描述】:我正在努力寻找能够在 silverlight 中创建 CSV 或文本文件作为可下载链接的示例或代码。
我已经在 ASP.net 中完成了这项工作,但无法找到使用 Silverlight 的方法。我在旋转我的***吗?或者我应该只创建一个 ASP 页面?有没有办法在 c# 中做到这一点?
我希望以正确的方式来做这件事,而不是做一些黑客工作,并且会感谢任何反馈和建议。
在 ASP 中我会使用:
Response.ContentType = "text/csv"
Response.AddHeader "Content-disposition", "attachment;filename=""EPIC0B00.CSV"""
Response.write....
【问题讨论】:
在这种情况下,我使用 ashx 处理程序和来自 silverlight 应用程序的链接。 【参考方案1】:我能够使用与上面非常相似的代码来解决问题,只包括所需的引用,因此没有做出任何假设,而且这是一个实际的工作示例。
using System;
using System.IO;
using System.Windows;
using System.Windows.Controls;
....
private void btnSave_Click(object sender, RoutedEventArgs e)
string data = ExportData(); // This is where the data is built
SaveFileDialog sfd = new SaveFileDialog()
DefaultExt = "csv",
Filter = "CSV Files (*.csv)|*.csv|All files (*.*)|*.*",
FilterIndex = 1
;
if (sfd.ShowDialog() == true)
using (Stream stream = sfd.OpenFile())
using (StreamWriter writer = new StreamWriter(stream))
writer.Write(data); //Write the data :)
writer.Close();
stream.Close();
private string ExportData()
return "!this is the exported text";
【讨论】:
【参考方案2】:Silverlight 是一种客户端技术。您不能将浏览器指向它并从中“下载”CSV 或其他任何内容。
改为使用SaveFileDialog
类。这是一段基于 MSDN 文档的代码:-
SaveFileDialog csvDialog;
public Page()
InitializeComponent();
csvDialog= new SaveFileDialog();
csvDialog.Filter = "CSV Files| *.csv";
csvDialog.DefaultExt = "csv";
private void button1_Click(object sender, RoutedEventArgs e)
bool? result = csvDialog.ShowDialog();
if (result == true)
System.IO.Stream fileStream = csvDialog.OpenFile();
System.IO.StreamWriter sw = new System.IO.StreamWriter(fileStream);
// Call a method to write your CSV content to the sw here
sw.Flush();
sw.Close();
【讨论】:
以上是关于使用 silverlight 4 和 c# 创建 CSV 下载的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Windows phone silverlight 应用程序上从 C# 填充视频
如何在不实际删除行的情况下明显折叠 Silverlight 4 ListBox 中的单行?