本公司原来用ms office,使用如下导出代码导出的xls在使用上没有问题,但目前公司禁用ms office,改用wps,致使导出的xls文件无法使用wps软件正常打开,打开后全部显示如下内容+ADw-div+AD4-
         +ADw-table cellspacing+ADOAIg-0 ..................
          ................
          ................
          ................
          ................
          ................
          .................
+ADw-/div+AD4-
经过本人测试推敲,导出的xls不是标准的excel文件,因为使用ultraEdit等软件打开后,不会显示乱码,(标准的excel文件使用记事本打开都会是乱码的)。所以请问各位高手,怎样导出标准的excel文件以供wps使用,谢谢!‘附上本人目前使用的vb.net 2008 导出代码
Protected Sub Button1_Click()Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) 
 Response.Clear 
 Response.Buffer = True 
 Response.Charset = "GB2312" 
 Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls") 
 Response.ContentEncoding = System.Text.Encoding.UTF7 
 Response.ContentType = "application/ms-excel" 
 Dim oStringWriter As System.IO.StringWriter = New System.IO.StringWriter 
 Dim oHtmlTextWriter As System.Web.UI.HtmlTextWriter = New System.Web.UI.HtmlTextWriter(oStringWriter) 
 Me.GridView1.RenderControl(oHtmlTextWriter) 
 Response.Output.Write(oStringWriter.ToString) 
 Response.Flush 
 Response.End 
End Sub Public Overloads Overrides Sub VerifyRenderingInServerForm()Sub VerifyRenderingInServerForm(ByVal control As Control) 
End Sub 
excelasp.netvb.net

解决方案 »

  1.   

    代码只是把html给另存为xls格式的文件。Excel能打开显示。
    可以考虑:
    1. 使用Microsoft.Office.Interop.Excel, 不过公司既然禁用MS Office,这个方法在生成Excel的时候可能行不通。
    2. 尝试使用第三方的Excel生成框架,生成xlsx格式的, 比如说EPPlus
    http://epplus.codeplex.com/
      

  2.   

    #3是正解!你的做法,是生成一个HTML,然后改扩展名为xls,因为excel支持打开html所以一切正常了,现在是wps,可能不支持直接打开html,就出问题了。要解决,只要在服务器端从新生成真正的excel格式文件。方法(1)生成CSV格式的文件(2)其它开源的库直接写excel(服务器不用安装Excel):
    http://blog.csdn.net/chinajiyong/article/details/7187345
    (3)操作Excel的COM组件(需要服务器端安装Excel)