Экспорт пользовательского файла Excel с RadGrid - PullRequest
0 голосов
/ 31 января 2012

Я могу экспортировать свою Radgrid в файл Excel, но я хочу добавить больше информации на лист.

Если это возможно, я был бы признателен за учебник / пример кода для создания пользовательских файлов Excel.

                    <tel:radgrid runat="server" id="mygrid" skinid="RadGrid_Search_Standard">
                    <ExportSettings HideStructureColumns="true" />

                    </tel:radgrid>

Сетка связана с данными с некоторыми данными, и мне нужно добавить некоторые данныедобавить несколько строк выше

mygrid.MasterTableView.ExportToWord ()

Ответы [ 3 ]

1 голос
/ 02 февраля 2012

Возможный способ - изменить код HTML непосредственно перед экспортом. Вот как.

protected override void OnInit(EventArgs e)
{
    base.OnInit(e);
    RadGridName.GridExporting += (s, a) => 
    {
        string myHtmlCode = "<span>My HTML code goes here</span>";
        a.ExportOutput = a.ExportOutput.Replace("<body>", "<body>" + myHtmlCode);
    };
}

Это должно работать как для Excel (не ExcelML), так и для Word.

Удачи

1 голос
/ 06 марта 2012

Единственное, что вам нужно сделать, это добавить информацию о вашей дополнительной странице в ExportOutput вашего аргумента

void yourRadGridID_GridExporting(object sender, GridExportingArgs e)
{

 string additionalPageInfo= "your html code for the additional page info goes here";

 e.ExportOutput = e.ExportOutput.Replace("`<body>`", "`<body>`" + additionalPageInfo);

}
1 голос
/ 31 января 2012

Вот некоторый код, который я использую с Telerik Grid, вместо того, чтобы использовать предоставленную ими функцию ExportToExcel. Я создал собственную кнопку, которая запускает свое собственное событие экспорта.

У меня есть функция (не включена) с именем getDataSource, которую я использую для заполнения сетки, вы можете переопределить ее или создать свою собственную для извлечения данных в DataTable и добавления любых строк / столбцов / данных, как вы видитеподходит.

        //export button calls this
        private void ExportReport()
        {
            SetPublicVariables();

            System.Data.DataTable dt = GetDataSource(false); 

            string exportData = buildCSVExportString(dt);

            string filename = string.Format("{0} - {1}.csv",
                (Master as MasterPages.Drilldown).Titlelbl.Text, CampaignTitle);
            if (filename.Length > 255) filename = filename.Substring(0, 255);

            ExportCSV(exportData, filename);
        }

//build a string CSV
public static string buildCSVExportString(DataTable exportDT)
        {
            StringBuilder exportData = new StringBuilder();
            // get headers.

            int iColCount = exportDT.Columns.Count;
            for (int i = 0; i < iColCount; i++)
            {
               exportData.Append(exportDT.Columns[i].ToString());
                if (i < iColCount - 1)
                {
                    exportData.Append(",");
                }
            }
            exportData.Append(System.Environment.NewLine);            

            // get rows.
            foreach (DataRow dr in exportDT.Rows)
            {
                for (int i = 0; i < iColCount; i++)
                {
                    if (!Convert.IsDBNull(dr[i]))
                    {
                        //If the variable is a string it potentially has charaters that can't be parsed properly.
                        //this fixes the comma issue(which adds aditional columns).  Replace and escape " with "".
                        if (dr[i] is string)        
                            exportData.Append(String.Format(@"""{0}""", ((string)dr[i]).Replace("\"", @"""""")));
                        else
                            exportData.Append(dr[i].ToString());
                    }
                    if (i < iColCount - 1)
                    {
                        exportData.Append(",");
                    }
                }
                exportData.Append(System.Environment.NewLine);
            }
            return exportData.ToString();
        }



public void ExportCSV(string content, string filename)
        {
            filename = RemoveIllegalPathChars(filename);
            HttpResponse Response = HttpContext.Current.Response;
            string ext = System.IO.Path.GetExtension(filename);
            Response.ClearHeaders();
            Response.AddHeader("Content-Disposition", string.Format("attachment;filename=\"{0}\"", filename));
            Response.ContentType = "text/csv; charset-UTF-8;";
            Response.Clear();
            Response.Write(content);
            Response.End();
        }
...