我输出EXCEL,用application/vnd.ms-excel把整个TABLE输出到EXCEL中,但却有时候会出现乱码,为什么?

miaomiaoga 2005-01-29 03:11:43
输出方法:

strFileNameExport = "Results"

Response.Clear()
Response.Buffer = True
Response.ContentType ="application/vnd.ms-excel" 'application/msword
Response.Addheader "Content-Disposition", "attachment;Filename=" & strFileNameExport & ".xls"
Response.Charset = "GB2312"
Response.Codepage = "936"

tblHeader = "<html><body><table border=1>"
tblFooter = "</table></body></html>"

Response.Write tblHeader & strContent & tblFooter

就这样的输出,把某个页面TABLE里的内容输出到EXCEL文件中,但打开后,却有些文件会乱码,有些不会,我尝试过把GB2312->UTF8,"936"->"65001",就是把输出变成UTF-8,也是有些会乱码,有些页面输出去不会,而且是随机出现的,同一个页面,有时候会,有时候却不会,烦了我一个星期了,还不知道是什么回事.

想来想去,这和编码会有关系吗?内容可是都一样的.而且是同一个页面的不同结果.

请各位帮帮忙了,明天得去会见客人了,如果打印有问题,偶会死得很惨.:(...只好半夜在这发贴喊救命了.:(...

环境:
ASP,SQL2K,WIN2003.
...全文
1897 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
miaomiaoga 2005-01-31
  • 打赏
  • 举报
回复
果然解决了问题!

就是这句!

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

楼上的用VBA的在我的软件中用这样有点浪费了,不过我倒一般用EXCEL。APPLICATION读EXCEL文件进数据库。:)~
bolm 2005-01-29
  • 打赏
  • 举报
回复
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

加上这个应该就不会出现乱码了
  • 打赏
  • 举报
回复
楼上用vba,有什么好的??

Response.ContentType ="application/vnd.ms-excel"
<TABLE id="outtable" name="outtable">
<TR>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
</TR>
<TR>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
</TR>
<TR>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
</TR>
<TR>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
</TR>
</TABLE>
这样也没乱码
yb2008 2005-01-29
  • 打赏
  • 举报
回复
用这个看看有没有乱码!

在IE中把控件启用!

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body>
<TABLE id="outtable" name="outtable">
<TR>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
</TR>
<TR>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
</TR>
<TR>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
</TR>
<TR>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
</TR>
</TABLE>
<input type="button" name="out_excel" onclick="AutomateExcel();" value="导出到excel" class="notPrint">
<SCRIPT LANGUAGE="javascript">
function AutomateExcel()
{
var oXL = new ActiveXObject("Excel.Application");
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
var hang = outtable.rows.length;

var lie = outtable.rows(0).cells.length;

for (i=0;i<hang;i++)
{
for (j=0;j<lie;j++)
{
oSheet.Cells(i+1,j+1).value = outtable.rows(i).cells(j).innerText;
}

}
oXL.Visible = true;
oXL.UserControl = true;
}
</SCRIPT>
</body>
</html>
itzhiren 2005-01-29
  • 打赏
  • 举报
回复
确实是个问题,不过最好是直接将记录集中的数据写入到Excel中

28,404

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧