数据导出Excel中文乱码
数据导出到EXCEL提供用户下载,当记录数大于5行时不会出现乱码.但只要不退出Excel,再删除除记录,当记录数小于5行时,导出也不会出现乱码.当然一旦退出Excel再导出就会出现乱码了.
可以试试
试下以下代码,加个头和尾
string a1 = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<title>Datos</title>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=GB2312\" />\n<style>\n</style>\n</head>\n<body>\n";
string a2 = "\n</body>\n</html>";
Response.Write(a1 + sw.ToString() + a2);
另外,UTF7在office2007无法打开。
或者web.config中
requestEncoding="utf-8"
responseEncoding="utf-8"
/// <summary>
/// export error datatable
/// </summary>
/// <param name="dtError"></param>
public void ExportErrorDataTable(DataTable dtError)
{
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssff") + ".xls";//设置导出文件的名称
System.Web.HttpContext curContext = System.Web.HttpContext.Current;
curContext.Response.ContentType = "application/vnd.ms-excel";
curContext.Response.ContentEncoding = System.Text.Encoding.UTF8;
curContext.Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, Encoding.UTF8).ToString());
curContext.Response.Charset = "UTF-8";
curContext.Response.Write(AddExcelHead());//显示excel的网格线
curContext.Response.Write(ExportTable(dtError));//导出
curContext.Response.Write(AddExcelbottom());//显示excel的网格线
curContext.Response.Flush();
curContext.Response.End();
} #region 公共程序(导出excel) public static string ExportTable(DataTable tb)
{ string data = ""; data += "<table cellspacing=\"0\" cellpadding=\"5\" rules=\"all\" border=\"0\">";
//写出列名
data += "<tr style=\"font-weight: bold; white-space: nowrap;\">";
foreach (DataColumn column in tb.Columns)
{
data += "<td>" + column.ColumnName + "</td>";
}
data += "</tr>";
//写出数据
foreach (DataRow row in tb.Rows)
{
data += "<tr>";
foreach (DataColumn column in tb.Columns)
{
if (column.ColumnName.Equals("产品名称"))
data += "<td style=\"vnd.ms-excel.numberformat:@\">" + row[column].ToString().Replace('•', '.') + "</td>";
else
data += "<td style=\"vnd.ms-excel.numberformat:@\">" + row[column].ToString() + "</td>";
}
data += "</tr>";
}
if (tb.Rows.Count < 8)//因为少于8行的话,会出现乱码
{ for (int i = 0; i < 8; i++)
{
data += "<tr>";
foreach (DataColumn column in tb.Columns)
{
data += "<td style=\"vnd.ms-excel.numberformat:@\"> </td>";
}
data += "</tr>";
} }
data += "</table>"; return data;
} public static string AddExcelHead()
{
StringBuilder sb = new StringBuilder();
sb.Append("<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">");
sb.Append(" <head>");
sb.Append(" <!--[if gte mso 9]><xml>");
sb.Append("<x:ExcelWorkbook>");
sb.Append("<x:ExcelWorksheets>");
sb.Append("<x:ExcelWorksheet>");
sb.Append("<x:Name></x:Name>");
sb.Append("<x:WorksheetOptions>");
sb.Append("<x:Print>");
sb.Append("<x:ValidPrinterInfo />");
sb.Append(" </x:Print>");
sb.Append("</x:WorksheetOptions>");
sb.Append("</x:ExcelWorksheet>");
sb.Append("</x:ExcelWorksheets>");
sb.Append("</x:ExcelWorkbook>");
sb.Append("</xml>");
sb.Append("<![endif]-->");
sb.Append(" </head>");
sb.Append("<body>");
return sb.ToString();
} public static string AddExcelbottom()
{
StringBuilder sb = new StringBuilder();
sb.Append("</body>");
sb.Append("</html>");
return sb.ToString();
} #endregion
数据导出Excel中文乱码的更多相关文章
- asp.net 导出excel 中文乱码解决方法 (转)
用我转载的上一篇文章 Asp.net中把DataTable或DataGrid导出为Excel 导出的文档,中文有乱码现象,其实要解决中文乱码很简单,设置一下字符集.如下: // 设置编码和附件格式 c ...
- mysql数据导出excel格式+乱码解决
1:导出的SQL命令,只需要加上“FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' ” ...
- Django导出excel中文乱码解决方案
Django官方文档有关于怎么生成csv文件的方法 import csv from django.http import HttpResponse def some_view(request): # ...
- mysql 查询导出 excel 中文乱码 解决 --default-character-set=gbk
mysql --default-character-set=gbk -uroot -p -D open_fusion -e " select * from table1 " ...
- 关于PHP导出excel文件名乱码的问题
关于PHP导出excel文件名乱码的问题 对于中文的文件名使用,urlencode即可避免此问题 urlencode() 申请的urlencode()
- 百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里?
好多人在问:如何将百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里? 现在,很多人都在网络上找商家,联系业务. 百度地图里有很多的商家联系 ...
- 【asp.net】将GridView数据导出Excel
概要: 中午睡了一会,醒来的时候看到老师叫我去办公室,需求是这样的,把excel表中的每个同学,判断图片目录中是否有对应的照片(图片的名字用的学号或身份证号码) 没有对应图片的学生记录,存入自己的数据 ...
- Java使用POI实现数据导出excel报表
Java使用POI实现数据导出excel报表 在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅 ...
- Mysql 导入导出csv 中文乱码
这篇文章介绍了Mysql 导入导出csv 中文乱码问题的解决方法,有需要的朋友可以参考一下 导入csv: load data infile '/test.csv' into table table ...
随机推荐
- 2016 Multi-University Training Contest 2 - 1005 Eureka
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5738 题目大意:给定平面上的n个点,一个集合合法当且仅当集合中存在一对点u,v,对于集合中任意点w,均 ...
- Bloom Filter学习
参考文献: Bloom Filters - the math http://pages.cs.wisc.edu/~cao/papers/summary-cache/node8.html B ...
- 315. Count of Smaller Numbers After Self
You are given an integer array nums and you have to return a new counts array. The counts array has ...
- 今天使用bootstrap中的tagsinput控件,碰到个小问题
我直接使用时,后台一直报Uncaught Can't add objects when itemValue option is not set错误, 代码如下: <div> <inp ...
- Lisp中编写宏的步骤以及规范
一.编写步骤 1.编写示例的宏调用以及它应当展开的代码,反之亦然. 2.编写从示例调用中生成手写展开式的代码. 3.确保宏抽象不产生"泄露". 二.遵循规则 1.除非有特殊理由,否 ...
- spring的helloworld
前两天接到了支付宝的电话面试,问了我好多java中的知识,知识姐不看java好多年,这猛一问知道的东西还真是不少啊.趁着现在精力还算是比较旺盛,再把spring重新理一理,为下一次面试做准备. 学习每 ...
- 《转》iOS音频视频初级开发
代码改变世界 Posts - 73, Articles - 0, Comments - 1539 Cnblogs Dashboard Logout HOME CONTACT GALLERY RSS ...
- 西门子Prodave5.5使用说明及VC示例
西门子PLC的通信协议主要是PPI.MPI.Profibus.CP243/CP343/CP443 网络协议,prodave是早期完成的程序接口,除了网络协议外其它的主要协议都支持,SoftNet是西门 ...
- 【Python全栈笔记】03 [模块二] 16-17 Oct 函数
定义一个函数 def function_name(形式参数): 代码块 return 'Value' #如果没有写return,则默认返回None # 一个函数到return这一行就结束执行了,在re ...
- 1_UILabel
// // ViewController.swift // 1_UILabel // // Created by Larry on 2016/12/7. // Copyright © 2016年 nf ...