2015-07-02 5 views
0

Вот как я просматриваю gridview в Excel. Помощь Pls с кодом загрузки pdf: string strFileName = "Salary_Statement" + DateTime.Now.ToString ("ddMMyyyy"); GridView1.AllowPaging = false;Загрузка в формате pdf

 GridView1.HeaderRow.Cells[2].Visible = true; 
     GridView1.HeaderRow.Cells[3].Visible = true; 
     for (int i = 0; i < GridView1.Rows.Count; i++) 
     { 
      GridViewRow row = GridView1.Rows[i]; 

     } 


     GridView1.HeaderRow.Style.Add("background-color", "#e5e1e1"); 

     for (int i = 0; i < GridView1.Rows.Count; i++) 
     { 
      GridViewRow row = GridView1.Rows[i]; 
      row.Attributes.Add("class", "textmode"); 
     } 
     Response.Clear(); 
     Response.Buffer = true; 
     Response.AddHeader("content-disposition", 
     "attachment;filename=" + strFileName + ".xls"); 
     Response.Charset = ""; 
     Response.ContentType = "application/vnd.ms-excel"; 
     StringWriter sw = new StringWriter(); 
     HtmlTextWriter hw = new HtmlTextWriter(sw); 
     GridView1.RenderControl(hw); 

     string style = @"<style> .textmode { mso-number-format:\@; } </style>"; 
     Response.Write(style); 
     Response.Output.Write(sw.ToString()); 
     Response.Flush(); 

     Response.End(); 
     GridView1.AllowPaging = true;//AB 

ответ

0

Попробуйте это. Следующий код показывает, как загрузить

http://www.codeproject.com/Questions/317301/Code-of-Downloading-PDF-file-in-asp-net

using System; 
 
using System.Data; 
 
using System.Configuration; 
 
using System.Web; 
 
using System.Web.Security; 
 
using System.Web.UI; 
 
using System.Web.UI.WebControls; 
 
using System.Web.UI.WebControls.WebParts; 
 
using System.Web.UI.HtmlControls; 
 
using iTextSharp.text; 
 
using iTextSharp.text.html; 
 
using iTextSharp.text.pdf; 
 
    
 

 
protected void ExportToPDF(GridView gvReport, bool LandScape) 
 
    { 
 
     int noOfColumns = 0, noOfRows = 0; 
 
     DataTable tbl = null; 
 
    
 
     if (gvReport.AutoGenerateColumns) 
 
     { 
 
      tbl = gvReport.DataSource as DataTable; // Gets the DataSource of the GridView Control. 
 
      noOfColumns = tbl.Columns.Count; 
 
      noOfRows = tbl.Rows.Count; 
 
     } 
 
     else 
 
     { 
 
      noOfColumns = gvReport.Columns.Count; 
 
      noOfRows = gvReport.Rows.Count; 
 
     } 
 
    
 
     float HeaderTextSize = 8; 
 
     float ReportNameSize = 10; 
 
     float ReportTextSize = 8; 
 
     float ApplicationNameSize = 7; 
 
    
 
     // Creates a PDF document 
 
     Document document = null; 
 
     if (LandScape == true) 
 
     { 
 
      // Sets the document to A4 size and rotates it so that the orientation of the page is Landscape. 
 
      document = new Document(PageSize.A4.Rotate(), 0, 0, 15, 5); 
 
     } 
 
     else 
 
     { 
 
      document = new Document(PageSize.A4, 0, 0, 15, 5); 
 
     } 
 
    
 
     // Creates a PdfPTable with column count of the table equal to no of columns of the gridview or gridview datasource. 
 
     iTextSharp.text.pdf.PdfPTable mainTable = new iTextSharp.text.pdf.PdfPTable(noOfColumns); 
 
    
 
     // Sets the first 4 rows of the table as the header rows which will be repeated in all the pages. 
 
     mainTable.HeaderRows = 4; 
 
    
 
     // Creates a PdfPTable with 2 columns to hold the header in the exported PDF. 
 
     iTextSharp.text.pdf.PdfPTable headerTable = new iTextSharp.text.pdf.PdfPTable(2); 
 
    
 
     // Creates a phrase to hold the application name at the left hand side of the header. 
 
     Phrase phApplicationName = new Phrase("Sample Application", FontFactory.GetFont("Arial", ApplicationNameSize, iTextSharp.text.Font.NORMAL)); 
 
    
 
     // Creates a PdfPCell which accepts a phrase as a parameter. 
 
     PdfPCell clApplicationName = new PdfPCell(phApplicationName); 
 
     // Sets the border of the cell to zero. 
 
     clApplicationName.Border = PdfPCell.NO_BORDER; 
 
     // Sets the Horizontal Alignment of the PdfPCell to left. 
 
     clApplicationName.HorizontalAlignment = Element.ALIGN_LEFT; 
 
    
 
     // Creates a phrase to show the current date at the right hand side of the header. 
 
     Phrase phDate = new Phrase(DateTime.Now.Date.ToString("dd/MM/yyyy"), FontFactory.GetFont("Arial", ApplicationNameSize, iTextSharp.text.Font.NORMAL)); 
 
    
 
     // Creates a PdfPCell which accepts the date phrase as a parameter. 
 
     PdfPCell clDate = new PdfPCell(phDate); 
 
     // Sets the Horizontal Alignment of the PdfPCell to right. 
 
     clDate.HorizontalAlignment = Element.ALIGN_RIGHT; 
 
     // Sets the border of the cell to zero. 
 
     clDate.Border = PdfPCell.NO_BORDER; 
 
    
 
     // Adds the cell which holds the application name to the headerTable. 
 
     headerTable.AddCell(clApplicationName); 
 
     // Adds the cell which holds the date to the headerTable. 
 
     headerTable.AddCell(clDate); 
 
     // Sets the border of the headerTable to zero. 
 
     headerTable.DefaultCell.Border = PdfPCell.NO_BORDER; 
 
    
 
     // Creates a PdfPCell that accepts the headerTable as a parameter and then adds that cell to the main PdfPTable. 
 
     PdfPCell cellHeader = new PdfPCell(headerTable); 
 
     cellHeader.Border = PdfPCell.NO_BORDER; 
 
     // Sets the column span of the header cell to noOfColumns. 
 
     cellHeader.Colspan = noOfColumns; 
 
     // Adds the above header cell to the table. 
 
     mainTable.AddCell(cellHeader); 
 
    
 
     // Creates a phrase which holds the file name. 
 
     Phrase phHeader = new Phrase("Sample Export", FontFactory.GetFont("Arial", ReportNameSize, iTextSharp.text.Font.BOLD)); 
 
     PdfPCell clHeader = new PdfPCell(phHeader); 
 
     clHeader.Colspan = noOfColumns; 
 
     clHeader.Border = PdfPCell.NO_BORDER; 
 
     clHeader.HorizontalAlignment = Element.ALIGN_CENTER; 
 
     mainTable.AddCell(clHeader); 
 
    
 
     // Creates a phrase for a new line. 
 
     Phrase phSpace = new Phrase("\n"); 
 
     PdfPCell clSpace = new PdfPCell(phSpace); 
 
     clSpace.Border = PdfPCell.NO_BORDER; 
 
     clSpace.Colspan = noOfColumns; 
 
     mainTable.AddCell(clSpace); 
 
    
 
     // Sets the gridview column names as table headers. 
 
     for (int i = 0; i < noOfColumns; i++) 
 
     { 
 
      Phrase ph = null; 
 
    
 
      if (gvReport.AutoGenerateColumns) 
 
      { 
 
       ph = new Phrase(tbl.Columns[i].ColumnName, FontFactory.GetFont("Arial", HeaderTextSize, iTextSharp.text.Font.BOLD)); 
 
      } 
 
      else 
 
      { 
 
       ph = new Phrase(gvReport.Columns[i].HeaderText, FontFactory.GetFont("Arial", HeaderTextSize, iTextSharp.text.Font.BOLD)); 
 
      } 
 
    
 
      mainTable.AddCell(ph); 
 
     } 
 
    
 
     // Reads the gridview rows and adds them to the mainTable 
 
     for (int rowNo = 0; rowNo < noOfRows; rowNo++) 
 
     { 
 
      for (int columnNo = 0; columnNo < noOfColumns; columnNo++) 
 
      { 
 
       if (gvReport.AutoGenerateColumns) 
 
       { 
 
        string s = gvReport.Rows[rowNo].Cells[columnNo].Text.Trim(); 
 
        Phrase ph = new Phrase(s, FontFactory.GetFont("Arial", ReportTextSize, iTextSharp.text.Font.NORMAL)); 
 
        mainTable.AddCell(ph); 
 
       } 
 
       else 
 
       { 
 
        if (gvReport.Columns[columnNo] is TemplateField) 
 
        { 
 
         DataBoundLiteralControl lc = gvReport.Rows[rowNo].Cells[columnNo].Controls[0] as DataBoundLiteralControl; 
 
         string s = lc.Text.Trim(); 
 
         Phrase ph = new Phrase(s, FontFactory.GetFont("Arial", ReportTextSize, iTextSharp.text.Font.NORMAL)); 
 
         mainTable.AddCell(ph); 
 
        } 
 
        else 
 
        { 
 
         string s = gvReport.Rows[rowNo].Cells[columnNo].Text.Trim(); 
 
         Phrase ph = new Phrase(s, FontFactory.GetFont("Arial", ReportTextSize, iTextSharp.text.Font.NORMAL)); 
 
         mainTable.AddCell(ph); 
 
        } 
 
       } 
 
      } 
 
    
 
      // Tells the mainTable to complete the row even if any cell is left incomplete. 
 
      mainTable.CompleteRow(); 
 
     } 
 
    
 
     // Gets the instance of the document created and writes it to the output stream of the Response object. 
 
     PdfWriter.GetInstance(document, Response.OutputStream); 
 
    
 
     // Creates a footer for the PDF document. 
 
     HeaderFooter pdfFooter = new HeaderFooter(new Phrase(), true); 
 
     pdfFooter.Alignment = Element.ALIGN_CENTER; 
 
     pdfFooter.Border = iTextSharp.text.Rectangle.NO_BORDER; 
 
    
 
     // Sets the document footer to pdfFooter. 
 
     document.Footer = pdfFooter; 
 
     // Opens the document. 
 
     document.Open(); 
 
     // Adds the mainTable to the document. 
 
     document.Add(mainTable); 
 
     // Closes the document. 
 
     document.Close(); 
 
    
 
     Response.ContentType = "application/pdf"; 
 
     Response.AddHeader("content-disposition", "attachment; filename= SampleExport.pdf"); 
 
     Response.End(); 
 
    }

+0

Это должно произойти на событии нажатия –

+0

Copy содержание выше методы в новом методе и назовите его по щелчку –

Смежные вопросы