我使用C#导出Excel文件,可是C#控制Excel 2007生成的.xlsx文件Excel 2003时打不开的。而如果直接在程序中指定生成文件的扩展名是.xls使用Excel 2003打开时提示丢失信息。我写的代码如下:
 xSheet.SaveAs(FilePath+"CData2.xls",Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value, Missing.Value, Missing.Value, Missing.Value);如果直接在Excel 2007中将文件另存为97-2003的兼容模式生成的.xls文件Excel 2003就能够正常打开。请问应该如何用程序控制Excel 2007生成兼容模式的.xls文件?

解决方案 »

  1.   

    string fileName =FilePath+"CData2.xls";
    Excel.XlFileFormat version= Excel.XlFileFormat.xlExcel8;//Excel 2003版本
    if(System.IO.Path.GetExtension(fileName).ToLower() = ".xlsx") Then version = Excel.XlFileFormat.xlOpenXMLWorkbook;//Excel 2007版本xSheet.SaveAs(fileName,version,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value, Missing.Value, Missing.Value, Missing.Value);
      

  2.   

    忘了更改部分VB.Net 代码.string fileName =FilePath+"CData2.xls"; 
    Excel.XlFileFormat version= Excel.XlFileFormat.xlExcel8;//Excel 2003版本 
    if(System.IO.Path.GetExtension(fileName).ToLower() == ".xlsx") version = Excel.XlFileFormat.xlOpenXMLWorkbook;//Excel 2007版本 xSheet.SaveAs(fileName,version,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value, Missing.Value, Missing.Value, Missing.Value);
      

  3.   

     Response.Charset = "utf-8";
            Response.ContentEncoding = System.Text.Encoding.UTF7;
            Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
            Response.ContentType = FileType;
            this.EnableViewState = false;
            StringWriter tw = new StringWriter();
            HtmlTextWriter hw = new HtmlTextWriter(tw);        GridView1.RenderControl(hw);
            Response.Write(tw.ToString());
            Response.End();
      

  4.   

    string fileName =FilePath+"CData2.xls";
    Excel.XlFileFormat version= Excel.XlFileFormat.xlExcel8;//Excel 2003版本
    if(System.IO.Path.GetExtension(fileName).ToLower() = ".xlsx") Then version = Excel.XlFileFormat.xlOpenXMLWorkbook;//Excel 2007版本xSheet.SaveAs(fileName,version,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value, Missing.Value, Missing.Value, Missing.Value);
    请问这Excel是怎么定义的?