Перемещение данных с сервера Sql в Excel через веб-сервис - PullRequest
2 голосов
/ 31 октября 2008

Мои пользователи хотят получать данные из моего приложения в Excel. Данные хранятся в базе данных SQL Server, но я не хочу, чтобы пользователи имели прямой доступ к базе данных, я бы предпочел предоставить им веб-сервис для получения данных. Каков наилучший способ переноса данных из SQL Server в Excel через веб-сервис?

Ответы [ 5 ]

3 голосов
/ 31 октября 2008

Следующий код создаст файл 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);
            }
        }
    }
3 голосов
/ 31 октября 2008

Вы можете сделать это как прямую страницу asp.net и вернуть файл .csv. Если вы измените mimetype на text / csv, он должен по умолчанию открываться в Excel. Это был бы самый простой подход, который я использовал в прошлом с большим успехом.

1 голос
/ 31 октября 2008

Пусть веб-служба создает строковый буфер, ячейки которого разделены символом табуляции, а строки символом возврата каретки / перевода строки. Затем передайте результаты этого в Excel с помощью веб-запроса Excel. Это дешево, быстро, немного грязно, но хорошо для простых процессов.

1 голос
/ 31 октября 2008

Вы также можете сдвинуть HTML-страницу с таблицей на ней с именем файла .xls, Excel также знает, как ее открыть

0 голосов
/ 26 июня 2009

Я за Excel Web Query (Data / Import External) Кроме того, есть способ опубликовать данные из Excel обратно на веб-сайт. По крайней мере, он работает в MS Sharepoint

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...