仅在编辑导出文件时成功导出Asp.Net中的Excel [英] Exporting excel from Asp.Net successfully only problem in editing exported file

查看:61
本文介绍了仅在编辑导出文件时成功导出Asp.Net中的Excel的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,

我用VB成功地从asp.net导出excel。下面的代码只是问题,当我们尝试对导出的excel文件进​​行更改时,它给出了我们无法解决的问题保存要求保存的更改。如果我们按照某个名称进行保存,则会使用样式和其他文件等支持文件保存它。当我们从浏览器保存网页时,它们完全相同。



我的数据是在Gridview1中



Hello,
I am successfully exporting excel from asp.net with VB.The code as below only problem is when we try to do changes in the exported excel file, it gives problem that we cant save changes it ask for save as. And if we do save as by some name it saves it with supporting files like style and some other files Exactly same when we save web page from browser.

My data is in Gridview1

Protected Sub ImgBtnExport_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImgBtnExport.Click
      Response.Clear()
      Response.ClearHeaders()
      GridView1.AllowPaging = False
      Response.Buffer = True
      Dim worksheetTitle = "Sheet1"
      Response.Clear()
      Response.Write("<html xmlns:x=""urn:schemas-microsoft-com:office:excel"">")
      Response.Write("<head>")
      Response.Write("<!--[if gte mso 9]><xml>")
      Response.Write("<x:ExcelWorkbook>")
      Response.Write("<x:ExcelWorksheets>")
      Response.Write("<x:ExcelWorksheet>")
      Response.Write("<x:Name>" & worksheetTitle & "</x:Name>")
      Response.Write("<x:WorksheetOptions>")
      Response.Write("<x:Print>")
      Response.Write("<x:ValidPrinterInfo/>")
      Response.Write("</x:Print>")
      Response.Write("</x:WorksheetOptions>")
      Response.Write("</x:ExcelWorksheet>")
      Response.Write("</x:ExcelWorksheets>")
      Response.Write("</x:ExcelWorkbook>")
      Response.Write("</xml>")
      Response.Write("<![endif]--> ")
      Response.Write("</head>")
      Response.Write("<body>")
      Response.AddHeader("content-disposition", "attachment;filename=PlanExplode" & txt1.Text & ".xls")
      Response.Cache.SetCacheability(HttpCacheability.NoCache)
      Response.ContentType = "application/vnd.xls"
      Response.Charset = ""
      Dim StringWrite As New System.IO.StringWriter
      Dim HTMLWrite As New System.Web.UI.HtmlTextWriter(StringWrite)
      Dim table2, t As New HtmlTable
      Dim f As New System.Web.UI.HtmlControls.HtmlForm


      table2.Border = 1
      table2.Rows.Add(New HtmlTableRow)
      table2.Rows.Add(New HtmlTableRow)
      table2.Rows.Add(New HtmlTableRow)
      table2.Rows.Add(New HtmlTableRow)

      table2.Rows(0).Cells.Add(New HtmlTableCell)
      table2.Rows(0).Cells.Add(New HtmlTableCell)
      table2.Rows(0).Cells.Add(New HtmlTableCell)
      table2.Rows(0).Cells.Add(New HtmlTableCell)

      table2.Rows(1).Cells.Add(New HtmlTableCell)
      table2.Rows(1).Cells.Add(New HtmlTableCell)
      table2.Rows(1).Cells.Add(New HtmlTableCell)
      table2.Rows(1).Cells.Add(New HtmlTableCell)


      table2.Rows(2).Cells.Add(New HtmlTableCell)
      table2.Rows(2).Cells.Add(New HtmlTableCell)
      table2.Rows(2).Cells.Add(New HtmlTableCell)
      table2.Rows(2).Cells.Add(New HtmlTableCell)

      table2.Rows(3).Cells.Add(New HtmlTableCell)
      table2.Rows(3).Cells.Add(New HtmlTableCell)
      table2.Rows(3).Cells.Add(New HtmlTableCell)
      table2.Rows(3).Cells.Add(New HtmlTableCell)


      table2.Rows(0).Cells(0).InnerText = "Products "
      table2.Rows(1).Cells(0).InnerText = Label1.Text & " : " & txtPlancode.Text
      table2.Rows(1).Cells(2).InnerText = Label3.Text & " : " & txtSoNbr.Text


      table2.Rows(2).Cells(0).InnerText = Label2.Text & " : " & txtDate.Text
      table2.Rows(2).Cells(2).InnerText = Label4.Text & " : " & LblPlanFile.Text

      table2.Rows(3).Cells(0).InnerText = Label5.Text & " : " & txtVendor.Text
      table2.Rows(3).Cells(2).InnerText = Label6.Text & " : " & txtColour.Text
    table2.Rows(3).Height = 38

      t.Rows.Add(New HtmlTableRow)
      t.Rows.Add(New HtmlTableRow)
      f.Controls.Add(table2)
      table2.RenderControl(HTMLWrite)
      t.RenderControl(HTMLWrite)
      f.Controls.Add(GridView1)
      GridView1.RenderControl(HTMLWrite)
      Response.Write(StringWrite.ToString)
      Response.End()
  End Sub







我不明白为什么会发生这种情况我认为它正在考虑将文件作为网页。




I am not getting why this is happening I think it is considering file as web page.

推荐答案

你的思路正确。您所做的并不是真正将内容导出到Excel,而只是导出带有xls扩展名的HTML文件。虽然Excel将打开文件并显示信息,任何Excel特定功能都需要一个真正的Excel文档。



你应该看看使用像ClosedXML这样的东西 http://closedxml.codeplex.com/ [ ^ ]
You are right in your thinking. What you are doing is not really exporting the content to Excel, you are just exporting a HTML file with a xls extension. While Excel will open the file and display the information any Excel specific functions require a true excel document.

You should look at using something like ClosedXML http://closedxml.codeplex.com/[^]


这篇关于仅在编辑导出文件时成功导出Asp.Net中的Excel的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆