开发环境:
vs2008中文,sql2008中文
客户端:都是winxp,但有中文的也有日文的。导出方法:
1.把要导出的数据放入datatable中。。这个地方要注意,我的表字段都是用的日文。
2.用StringWriter写出。写出的内容也有日文。
3.response.write写出到execel中下面的代码在中文状态下没有乱码。但是日文系统就乱码啦。求解
。生成一个DATATABLE,省略代码了。
接下来就是导出到excel中的代码StringWriter strKKExcel;
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
strKKExcel = KKExcel.DTToExcel(DTOutput1);----此处是我的一个类。这里面不会有问题,应该跟这个没有关系。
Response.AddHeader("Content-Disposition", "attachment;filename=excelOutput.xls");
Response.ContentType = "application/vnd.ms-Excel";                                                
Response.Write(strKKExcel)
Response.End();就这么简单的几句导出,但是可惜还是乱码(在日文系统下面,中文不乱吗哦)。我试着按照网上的说法把所有的“GB2312”改成“UTF-8”结果中文下是乱码了。日文下没有测试。要不明天也测试一下。
期待高人。

解决方案 »

  1.   

    Response.Charset = "UTF-8";
    Response.ContentEncoding = Encoding.UTF8;
      

  2.   

    Response.Charset = "GB2312";
    这个指的是导出中文,日文当然乱码了
      

  3.   

    Response.ClearContent();
            Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode("name", System.Text.Encoding.UTF8) + ".xls");
            Response.ContentType = "application/excel";用上面代码就可以解决.
      

  4.   

    改成UTF-8,在日文系统下面也是乱码。这可怎么办?大家再帮我想想办法啊。我在DTOutput1这个datatable中表头和内容都是日文写的。按道理没有问题吧。
      

  5.   


    StringWriter strKKExcel;
    Response.ContentEncoding = System.Text.Encoding.UTF7;//
    strKKExcel = KKExcel.DTToExcel(DTOutput1);----此处是我的一个类。这里面不会有问题,应该跟这个没有关系。
    Response.AddHeader("Content-Disposition", "attachment;filename=excelOutput.xls");
    Response.ContentType = "application/vnd.ms-Excel";   
    Response.Write(strKKExcel)
    Response.End();
      

  6.   

    StringWriter strKKExcel;
    Response.ContentEncoding = System.Text.Encoding.UTF7;//
    strKKExcel = KKExcel.DTToExcel(DTOutput1);----此处是我的一个类。这里面不会有问题,应该跟这个没有关系。
    Response.AddHeader("Content-Disposition", "attachment;filename=excelOutput.xls");
    Response.ContentType = "application/ms-excel";  
    Response.Write(strKKExcel)
    Response.End();