RadGrid Экспорт в Excel Макет Проблема - PullRequest
0 голосов
/ 09 августа 2011

Итак, у меня есть Grid с MasterTableView, который содержит DetailTable, а этот DetailTable содержит DetailTable.Все верно в том, что касается отступа макета, когда он отображается на экране и когда я экспортирую в pdf.Но проблема в том, когда я пытаюсь экспортировать в Excel.Когда электронная таблица открывается, элемент MasterTableView имеет ширину, скажем, 7 столбцов.Первый элемент DetailTable имеет ширину, скажем, 5 столбцов, а второй элемент DetailTable имеет ширину 3 столбца.И они выглядят так, как будто выровнены по центру, поэтому выглядит как перевернутая пирамида.Моему клиенту это не нравится, и я часами пытался выяснить, как сделать отступы элементов так же, как в pdf и на экране, но безуспешно.Есть ли настройка или что-то для правильной визуализации Excel или это ошибка.Ниже будет моя разметка сетки, и я приложу изображение электронной таблицы, чтобы вы могли видеть, как она выглядит.Спасибо за любую помощь в этом вопросе.

    <telerik:RadGrid ID="RadGrid1" runat="server" ShowFooter="false" AutoGenerateColumns="false"
    AllowPaging="true" AllowSorting="false" CellSpacing="5" AllowFilteringByColumn="false">
    <ExportSettings HideStructureColumns="true" ExportOnlyData="true" IgnorePaging="true" OpenInNewWindow="true">
        <Pdf AllowAdd="false" AllowCopy="true" AllowModify="false" AllowPrinting="true" PageTitle="ESign Sent vs Sold"
            Title="ESign Sent vs Sold" PaperSize="A4" PageWidth="260mm" />
        <Excel Format="Html" />
    </ExportSettings>

    <ClientSettings AllowExpandCollapse="true">
        <Selecting AllowRowSelect="true" />
    </ClientSettings>

    <MasterTableView DataKeyNames="ParentID, ID" Name="DivisionTable" HierarchyLoadMode="Client" HierarchyDefaultExpanded="false" ClientDataKeyNames="ParentID, ID">
        <HeaderStyle Font-Bold="true" HorizontalAlign="Left" Wrap="false" />
        <ItemStyle Wrap="false" VerticalAlign="Middle" HorizontalAlign="Left" />
        <AlternatingItemStyle Wrap="false" VerticalAlign="Middle" HorizontalAlign="Left" />
        <FooterStyle Wrap="false" />

        <DetailTables>
        <telerik:GridTableView Name="RegionTable" DataKeyNames="ParentID, ID" ClientDataKeyNames="ParentID, ID" HierarchyLoadMode="Client" Width="100%" HierarchyDefaultExpanded="false" >
            <DetailTables>
                <telerik:GridTableView Name="BranchTable" DataKeyNames="ParentID, ID" ClientDataKeyNames="ParentID, ID" HierarchyLoadMode="Client" Width="100%" HierarchyDefaultExpanded="false" >
                    <Columns>
                        <telerik:GridTemplateColumn UniqueName="Filler" ItemStyle-Width="25px" HeaderStyle-Width="25px">
                            <ItemTemplate>
                                <span>&nbsp;</span>
                            </ItemTemplate>
                        </telerik:GridTemplateColumn>
                        <telerik:GridBoundColumn UniqueName="Text" DataField="Text" SortExpression="Text" HeaderText="Branch" ItemStyle-Width="300px" HeaderStyle-Width="300px" />
                        <telerik:GridBoundColumn UniqueName="SentCount" DataField="SentCount" SortExpression="SentCount" HeaderText="ESign Sent" ItemStyle-Width="150px" HeaderStyle-Width="150px" />
                        <telerik:GridBoundColumn UniqueName="SoldCount" DataField="SoldCount" SortExpression="SoldCount" HeaderText="Sold w/ ESign"  />
                    </Columns>
                </telerik:GridTableView>
            </DetailTables>

            <Columns>
                <telerik:GridBoundColumn UniqueName="Text" DataField="Text" SortExpression="Text" HeaderText="Region" ItemStyle-Width="300px" HeaderStyle-Width="300px" />
                <telerik:GridBoundColumn UniqueName="SentCount" DataField="SentCount" SortExpression="SentCount" HeaderText="ESign Sent" ItemStyle-Width="150px" HeaderStyle-Width="150px" />
                <telerik:GridBoundColumn UniqueName="SoldCount" DataField="SoldCount" SortExpression="SoldCount" HeaderText="Sold w/ ESign"  />
            </Columns>
        </telerik:GridTableView>
        </DetailTables>

        <Columns>
                <telerik:GridBoundColumn UniqueName="Text" DataField="Text" SortExpression="Text" HeaderText="Division" ItemStyle-Width="300px" HeaderStyle-Width="300px" />
                <telerik:GridBoundColumn UniqueName="SentCount" DataField="SentCount" SortExpression="SentCount" HeaderText="ESign Sent" ItemStyle-Width="150px" HeaderStyle-Width="150px"   />
                <telerik:GridBoundColumn UniqueName="SoldCount" DataField="SoldCount" SortExpression="SoldCount" HeaderText="Sold w/ ESign"  />
        </Columns>

    </MasterTableView>
</telerik:RadGrid>

enter image description here

1 Ответ

1 голос
/ 09 августа 2011

Да, встроенная функция экспорта в Excel ненадежна.

Добавьте кнопку экспорта на свою страницу и попробуйте использовать вместо этого:

   protected void btnExport_Click(object sender, EventArgs e)
    {
        Response.Clear();
        Response.Buffer = true;
        Response.ContentType = "application/vnd.ms-excel";
        Response.Charset = "";

        this.EnableViewState = false;
        System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
        RadGrid1.RenderControl(oHtmlTextWriter);
        Response.Write(oStringWriter.ToString());
        Response.End();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...