powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Запись в Excel
18 сообщений из 18, страница 1 из 1
Запись в Excel
    #38158344
Noname2563
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДД!
Мой вопрос баян, экспорт из GridView в Excel. НО, есть одно но, запись начать с определенной ячейки, а именно B10 (приложил скрин для примера)

Нашел по поиску хороший метод записи в excel, выложил Mr Alex , ссылка http://www.sql.ru/forum/actualthread.aspx?tid=571282&pg=1&mid=5860793#5860793, но он записывает с 1 строки и 1 столбца. Как можно можно реализовать изменение? До этого никогда не работал с выгрузкой в Excel файл...
...
Рейтинг: 0 / 0
Запись в Excel
    #38158349
Noname2563
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Забыл написать, после того как я сохраняю Excel файл и открываю, выходит сообщение (приложил скрин). Нажимаю да, и файл открывается, проблема в том что когда мы пытаемся подгрузить в иное приложение Excel файл не открывается (несовместимый формат), мне подсказали что надо сохранить по шаблону 97-2003 офиса... но как тоже под вопросом...
...
Рейтинг: 0 / 0
Запись в Excel
    #38158430
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Запись в Excel
    #38158442
Noname2563
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУВарианты http://codearticles.ru/home/articleview/158
http://codearticles.ru/home/articleview/737
http://codearticles.ru/home/articleview/746

Спасибо что ответили! Сейчас попробую, о результатах отпишусь
...
Рейтинг: 0 / 0
Запись в Excel
    #38158563
Noname2563
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Этот вариант не работает http://codearticles.ru/home/articleview/158 :(
пока тестирую другие
...
Рейтинг: 0 / 0
Запись в Excel
    #38158611
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Noname2563Этот вариант не работает http://codearticles.ru/home/articleview/158 :(

Аргументы где?
...
Рейтинг: 0 / 0
Запись в Excel
    #38158627
Noname2563
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"Application/msexcel" не пашет... все равно выдает окно с ошибкой... изначально было ms-excel, тоже самое...
...
Рейтинг: 0 / 0
Запись в Excel
    #38158631
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Noname2563"Application/msexcel" не пашет... все равно выдает окно с ошибкой... изначально было ms-excel, тоже самое...
Код в студию.
...
Рейтинг: 0 / 0
Запись в Excel
    #38158712
Noname2563
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУNoname2563"Application/msexcel" не пашет... все равно выдает окно с ошибкой... изначально было ms-excel, тоже самое...
Код в студию.
простите, не понял сразу, вот код:

Код: html
1.
2.
3.
  <asp:Button ID="Btn1" runat="server" Text="SELECT" onclick="Btn1_Click1"/>
  <asp:Button ID="ExportTo" runat="server" Text="Экспорт" onclick="ExportTo_Click" />
  <asp:GridView ID="GV1" runat="server"></asp:GridView>



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
  DataSet ds = new DataSet();

 protected void Btn1_Click1(object sender, EventArgs e)
        {
            string sql = null;
            connec.Open();
            sql = "SELECT * FROM TEST1";
            OracleDataAdapter adap = new OracleDataAdapter(sql, connec);

            adap.Fill(ds);

            GV1.DataSource = ds.Tables[0];
            GV1.DataBind();
        }

 protected void ExportTo_Click(object sender, EventArgs e)
        {
            ToExcel("report.xls", GV1);
        }

 public static void ToExcel(string fileName, GridView gv)
        {

            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.AddHeader(
                "content-disposition", string.Format("attachment; filename={0}", fileName));
            HttpContext.Current.Response.ContentType = "application/msexcel";

            using (StringWriter sw = new StringWriter())
            {
                using (HtmlTextWriter htw = new HtmlTextWriter(sw))
                {

                    GridViewWrapper(gv).RenderControl(htw);
                    HttpContext.Current.Response.Write(sw.ToString());
                    HttpContext.Current.Response.End();
                }
            }
        }

        private static Table GridViewWrapper(GridView gv)
        {
            Table table = new Table();
            table.GridLines = gv.GridLines;
            if (gv.HeaderRow != null)
            {
                WebForm2.PrepareControlForExport(gv.HeaderRow);
                table.Rows.Add(gv.HeaderRow);
            }
            foreach (GridViewRow row in gv.Rows)
            {
                WebForm2.PrepareControlForExport(row);
                table.Rows.Add(row);
            }

            if (gv.FooterRow != null)
            {
                WebForm2.PrepareControlForExport(gv.FooterRow);
                table.Rows.Add(gv.FooterRow);
            }
            return table;
        }

        private static void PrepareControlForExport(Control control)
        {
            for (int i = 0; i < control.Controls.Count; i++)
            {
                var current = control.Controls[i];
                if (current is LinkButton)
                {
                    control.Controls.Remove(current);
                    control.Controls.AddAt(i, new LiteralControl((current as LinkButton).Text));
                }
                else if (current is ImageButton)
                {
                    control.Controls.Remove(current);
                    control.Controls.AddAt(i, new LiteralControl((current as ImageButton).AlternateText));
                }
                else if (current is HyperLink)
                {
                    control.Controls.Remove(current);
                    control.Controls.AddAt(i, new LiteralControl((current as HyperLink).Text));
                }
                else if (current is DropDownList)
                {
                    control.Controls.Remove(current);
                    control.Controls.AddAt(i, new LiteralControl((current as DropDownList).SelectedItem.Text));
                }
                else if (current is CheckBox)
                {
                    control.Controls.Remove(current);
                    control.Controls.AddAt(i, new LiteralControl((current as CheckBox).Checked ? "True" : "False"));
                }
                if (current.HasControls())
                {
                    PrepareControlForExport(current);
                }
            }
        }
...
Рейтинг: 0 / 0
Запись в Excel
    #38158735
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделай у файла расширение html.
...
Рейтинг: 0 / 0
Запись в Excel
    #38158753
Noname2563
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУСделай у файла расширение html.
сохранился в html... открыл с помощью браузера, а там пусто. С помощью Excel, тоже пусто. Блокнот показал вот:

<table rules="all" border="1">

</table>
...
Рейтинг: 0 / 0
Запись в Excel
    #38158841
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Noname2563МСУСделай у файла расширение html.
сохранился в html... открыл с помощью браузера, а там пусто. С помощью Excel, тоже пусто. Блокнот показал вот:

<table rules="all" border="1">

</table>

Значит данных у тебя нет. У меня отлично сохраняется и открывается с данными.
...
Рейтинг: 0 / 0
Запись в Excel
    #38158901
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Tests.aspx.cs" Inherits="WebApplication3.Tests" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Export" />
        

        <asp:GridView ID="grid" runat="server" AutoGenerateColumns="false">
            <Columns>
                <asp:BoundField DataField="Id" />
                <asp:BoundField DataField="Title" />
            </Columns>
        </asp:GridView>
    </form>
</body>
</html>

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            grid.DataSource = Enumerable.Range(1, 50).Select(d => new { Id = Guid.NewGuid(), Title = "Название " + d });
            grid.DataBind();
        }
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        Excel.Utility.ExcelContext.Export(grid, "export.html");
    }

</script>
...
Рейтинг: 0 / 0
Запись в Excel
    #38158997
Noname2563
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо :)
...
Рейтинг: 0 / 0
Запись в Excel
    #38159151
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если изворотов не нужно, то можно отдавать просто csv файл, в котором первые N строк не будут содержать значений.
...
Рейтинг: 0 / 0
Запись в Excel
    #38159273
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВЕсли изворотов не нужно, то можно отдавать просто csv файл, в котором первые N строк не будут содержать значений.
Третья ссылка: 13952954
...
Рейтинг: 0 / 0
Запись в Excel
    #38159357
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЕвгенийВЕсли изворотов не нужно, то можно отдавать просто csv файл, в котором первые N строк не будут содержать значений.
Третья ссылка: 13952954
Посмотрел первую, он запросил логин/пароль, я и плюнул на остальные две.
...
Рейтинг: 0 / 0
Запись в Excel
    #38161245
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВМСУпропущено...

Третья ссылка: 13952954
Посмотрел первую, он запросил логин/пароль, я и плюнул на остальные две.ну это у МСУ такая стратегия - дунуть в лужу и свалить
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Запись в Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]