使用互操作在客户端机器中保存excel
本文关键字:保存 excel 机器 客户端 互操作 | 更新日期: 2023-09-27 18:13:07
我使用Interop Excel在我的c#代码中自动Excel,但在保存它的时候,我希望它应该给用户一个弹出窗口(就像我们从互联网下载文件时得到的打开和保存选项)
我已经尝试了以下,但它只保存在服务器的硬盘
xlWorksheet.Save();
xlWorksheet.SaveAs(parameters);
任何人都可以建议可以做什么(请参阅:我不想使用fileststream )
您需要在服务器中保存文件后启动文件下载
public FilePathResult GetFile()
{
string name = System.IO.Path.GetTempPath()+Guid.NewGuid().ToString()+".xls";
// do the work
xlWorksheet.Save(name);
return File(name, "Application/x-msexcel");
}
编辑后将文件保存在临时文件夹中。注意,这并不能保证文件的清理。
我不知道这是否对你有帮助。但我曾经写过一个WebService,返回我的xls作为一个字节数组,我的客户端应用程序解析回一个xls
public byte[] doSomething() {
try {
var xl = new ExcelWorksheet();
//...blablabla...
xl.SaveAs(parameters...);
if (File.Exists(pathOfXlsDoc)) return File.ReadAllBytes(pathOfXlsDoc);
return null;
} finally {
if (File.Exists) File.Delete(pathOfXlsDoc);
}
}
----------
在客户端App中是这样的:
private void BuildXls() {
try {
File.WriteAllBytes(clientsXlsPath, doSomething());
} catch (Exception e) {
throw new Exception("Error!", e);
}
}
你可能正在寻找这样一个保存/打开文件对话框:http://msdn.microsoft.com/en-us/library/system.windows.forms.savefiledialog%28v=VS.85%29.aspx它会打开一个对话框,询问你在哪里保存文件,一旦你选择了位置,它就会返回信息给你的程序,这样你就可以在那里保存文件了。