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

时间:2008-10-31 04:53:10

标签: c# sql-server web-services excel

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

5 个答案:

答案 0 :(得分:3)

您可以将其作为直接的asp.net页面并返回.csv文件。如果将mimetype更改为text / csv,则默认情况下应在excel中打开。这将是最简单的方法,也是我过去使用过的非常成功的方法。

答案 1 :(得分:3)

以下代码将从数据表生成一个excel文件,您可以将其传输给用户

    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);
            }
        }
    }

答案 2 :(得分:1)

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

答案 3 :(得分:1)

让Web服务发出一个字符串缓冲区,其中单元格由制表符分隔,行由回车符/换行符分隔。然后使用Excel Web查询将结果传递到Excel中。它便宜,快速,有点脏,但对简单的过程有好处。

答案 4 :(得分:0)

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