通过Web服务将数据从Sql Server移动到Excel

我的用户需要Excel中的应用程序的数据。 数据驻留在SQL Server数据库中,但我不希望用户直接访问数据库,我宁愿为他们提供一个Web服务来获取数据。 通过Web服务将数据从SQL Server移动到Excel的最佳方式是什么?

你可以做一个直接的asp.net页面,并返回一个.csv文件。 如果您将mimetype更改为text / csv,则应该默认在Excel中打开。 这将是最简单的方法,也是我过去取得巨大成功的一个方法。

下面的代码将从一个数据表中生成一个excel文件,你可以把这个stream传给用户

public static void CreateExcelFromDataTable(string filename, DataTable dt) { DataGrid grid = new DataGrid(); grid.HeaderStyle.Font.Bold = true; grid.DataSource = dt; grid.DataMember = dt.TableName; grid.DataBind(); // render the DataGrid control to a file using (StreamWriter sw = new StreamWriter(filename)) { using (HtmlTextWriter hw = new HtmlTextWriter(sw)) { grid.RenderControl(hw); } } } 

你也可以用一个.xls文件名将一个带有表格的html页面打开,excel也知道如何打开它

让Web服务发出一个string缓冲区,其中单元格由制表符和行通过回车/换行分隔。 然后使用Excel Web查询将此结果input到Excel中。 它便宜,快捷,有点肮脏,但对于简单的过程很好。

我赞成Excel Web Query(数据/导入外部)此外,还有一种方法可以将Excel中的数据发布回网站。 至less它在MS Sharepoint中工作