Открытие текста, содержащего CSV с Excel из ASP.NET

Я конвертирую старое интранет-приложение asp.net в.net 4.5. Одна из частей, с которыми у меня возникают проблемы, должна открыть строку, содержащую данные CSV, в Excel.

Независимо от того, как я пытаюсь это сделать, полученный документ Excel содержит содержимое веб-сайта, а не текст, который я предоставил.

На дополнительном примечании у меня в настоящее время есть aspx в веб-проекте, в то время как служебные / бизнес-классы находятся в другом. Я не знаю, является ли это частью проблемы.

Пожалуйста, помогите мне с этим вопросом.

Образец CSV:

string text = "\"Year\", \"Make\", \"Model\", \"Length\"\n\"1997\", \"Ford\", \"E350\", \"2.34\"\n\"2000\", \"Mercury\", \"Cougar\", \"2.38\""

Пример кода:

private static void OpenCsvFile(string text, string name)
{
    var httpContext = HttpContext.Current;
    httpContext.Response.Clear();
    httpContext.Response.ContentType = "application/vnd.ms-excel";
    httpContext.Response.Charset = "";
    httpContext.Response.AppendHeader("Content-Disposition", "attachment; filename=" + name + ".csv");
    httpContext.Response.Write(text);
    httpContext.Response.Flush();
    httpContext.ApplicationInstance.CompleteRequest();
}

Обновление: полученный файл содержит содержимое веб-сайта, а не текст CSV.

<!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 id="Head1">
    <title>
      "My WebSite"
    </title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link href="css/style.css" type="text/css" title="WebSite" rel="stylesheet" />
  </head>
  <body>
    <form method="post" action="Main.aspx" id="form1" name="form1">
      <table border="0" cellspacing="0" cellpadding="0" id="container">
        <td class="logo" onclick="window.location='Main.aspx';">
          <div class="logoDisplay">
            <img src="images/logo.gif" alt="" width="280px" height="67px" />
          </div>
        </td>
... etc

1 ответ

Решение

Ответ - перезагрузить компьютер. Да, он работает сейчас без каких-либо дальнейших изменений кода. Я просто не могу поверить, что потратил так много времени, пытаясь заставить это работать должным образом.

Спасибо за попытку помочь, Тим.

Другие вопросы по тегам