HTML 附加导出的 .csv 文档
HTML is appended with exported .csv document
我正在生成一个包含逗号分隔变量的字符串并尝试导出它。问题是整个 .html 页面与导出的 .csv 文件一起被附加。
我有两个代码实例,一个在本地服务器,另一个在测试服务器。我在两者中使用相同的数据库,两者的代码库仍然相同,导出 .csv 文件时出现问题。
以下是我用于导出的代码...
//name - Name of File to save
//text - Comma separated string
private void ExportToCSV(string fileName, string text)
{
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName + ".csv");
if (text != null && text.Length > 0)
{
Response.AddHeader("Content-Length", text.Length.ToString());
Response.Output.Write(text);
}
}
我已经尝试使用 Response.Write(text)
,但仍然遇到同样的问题。
这是我在获取导出的 .csv 文件时得到的输出...
SEARCH DATE,USER TYPE,CITY
20-08-2015,TM,Chicago
20-08-2015,TM,New York
20-08-2015,TM,London
20-08-2015,TM,London
20-08-2015,TM,London
20-08-2015,TM,Cape Town
20-08-2015,TM,Mumbai
20-08-2015,TM,Ottawa
20-08-2015,TM,Mumbai
20-08-2015,TM,Istanbul
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
Search Report
</title>
<script src="Jquery/jquery-1.9.1.js" type="text/javascript"></script>
<script src="Jquery/jquery-ui-1.9.2.custom/js/jquery-ui-1.9.2.custom.js"
type="text/javascript"></script>
<script type="text/javascript">
var t = false;
window.alert = function(message) {
$(document.createElement('div'))
.attr({ title: 'Alert', 'class': 'alert' })
.html(message)
.dialog({
buttons: { OK: function() { $(this).dialog('close'); } },
close: function() { $(this).remove(); },
draggable: true,
modal: true,
resizable: false,
width: 'auto'
});
};
$(function() {
var useragent = navigator.userAgent;
var bName = (useragent.indexOf('Opera') > -1) ? 'Opera' : navigator.appName;
var pos = useragent.indexOf('MSIE');
var bVer = "";
if (pos > -1) {
$('li').has('ul').mouseover(function() {
$(this).children('ul').show();
}).mouseout(function() {
$(this).children('ul').hide();
})
}
});
</script>
.
.
.
.
.
.
</div>
</div>
</body>
</html>
我无法找出导致此问题发生的根本原因。如果有人可以解释原因以及解决方案,那将是巨大的帮助。谢谢
你只需要添加
Response.End();
我还会添加Response.ContentType = "text/csv";
以便浏览器正确识别
我正在生成一个包含逗号分隔变量的字符串并尝试导出它。问题是整个 .html 页面与导出的 .csv 文件一起被附加。
我有两个代码实例,一个在本地服务器,另一个在测试服务器。我在两者中使用相同的数据库,两者的代码库仍然相同,导出 .csv 文件时出现问题。
以下是我用于导出的代码...
//name - Name of File to save
//text - Comma separated string
private void ExportToCSV(string fileName, string text)
{
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName + ".csv");
if (text != null && text.Length > 0)
{
Response.AddHeader("Content-Length", text.Length.ToString());
Response.Output.Write(text);
}
}
我已经尝试使用 Response.Write(text)
,但仍然遇到同样的问题。
这是我在获取导出的 .csv 文件时得到的输出...
SEARCH DATE,USER TYPE,CITY
20-08-2015,TM,Chicago
20-08-2015,TM,New York
20-08-2015,TM,London
20-08-2015,TM,London
20-08-2015,TM,London
20-08-2015,TM,Cape Town
20-08-2015,TM,Mumbai
20-08-2015,TM,Ottawa
20-08-2015,TM,Mumbai
20-08-2015,TM,Istanbul
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
Search Report
</title>
<script src="Jquery/jquery-1.9.1.js" type="text/javascript"></script>
<script src="Jquery/jquery-ui-1.9.2.custom/js/jquery-ui-1.9.2.custom.js"
type="text/javascript"></script>
<script type="text/javascript">
var t = false;
window.alert = function(message) {
$(document.createElement('div'))
.attr({ title: 'Alert', 'class': 'alert' })
.html(message)
.dialog({
buttons: { OK: function() { $(this).dialog('close'); } },
close: function() { $(this).remove(); },
draggable: true,
modal: true,
resizable: false,
width: 'auto'
});
};
$(function() {
var useragent = navigator.userAgent;
var bName = (useragent.indexOf('Opera') > -1) ? 'Opera' : navigator.appName;
var pos = useragent.indexOf('MSIE');
var bVer = "";
if (pos > -1) {
$('li').has('ul').mouseover(function() {
$(this).children('ul').show();
}).mouseout(function() {
$(this).children('ul').hide();
})
}
});
</script>
.
.
.
.
.
.
</div>
</div>
</body>
</html>
我无法找出导致此问题发生的根本原因。如果有人可以解释原因以及解决方案,那将是巨大的帮助。谢谢
你只需要添加
Response.End();
我还会添加Response.ContentType = "text/csv";
以便浏览器正确识别