0
我想实现导出到Excel的功能。我通过我的整个表以HTML格式字符串输出功能,并试图将其转换到Excel中。以下是我已经实现MVC导出到Excel从HTML表中DIV
[HttpPost]
public void ExportToExcel(ExportDataEntity data)
{
StringWriter sw = new StringWriter();
sw.WriteLine(data.HtmlData);
System.Web.HttpContext.Current.Response.ClearContent();
System.Web.HttpContext.Current.Response.Buffer = true;
System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=test.xls");
System.Web.HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
System.Web.HttpContext.Current.Response.Charset = "";
byte[] byteArray = Encoding.ASCII.GetBytes(sw.ToString());
MemoryStream s = new MemoryStream(byteArray);
StreamReader sr = new StreamReader(s, Encoding.Unicode);
System.Web.HttpContext.Current.Response.Write(sr.ReadToEnd());
System.Web.HttpContext.Current.Response.End();
}
下面的代码是我的实体类
public class ExportDataEntity
{
public string HtmlData { get; set; }
public string FileName { get; set; }
public string FileFormat { get; set; }
}
以下是表结构
<table border="1">
<tbody>
<tr class="text-center">
<th class="text-center" rowspan="2">Col1</th>
<th class="text-center" colspan="3">Col2</th>
<th class="text-center" colspan="3">Col3</th>
<th class="text-center" rowspan="2">Col4</th>
<th class="text-center" colspan="4">Col5</th>
<th class="text-center" colspan="6">Col6</th>
</tr>
<tr>
<td>SubCol21</td>
<td>SubCol22</td>
<td>SubCol23</td>
<td>SubCol31</td>
<td>SubCol32</td>
<td>SubCol33</td>
<td>SubCol51</td>
<td>SubCol52</td>
<td>SubCol53</td>
<td>SubCol54</td>
<td>SubCol61</td>
<td>SubCol62</td>
<td>SubCol63</td>
<td>SubCol64</td>
<td>SubCol65</td>
<td>SubCol66</td>
</tr>
<tr class="trData">
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
<td>10</td>
<td>11</td>
<td>12</td>
<td>13</td>
<td>14</td>
<td>15</td>
<td>16</td>
<td>17</td>
<td>18</td>
</tr>
<tr>
<td>Count</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>7</td>
<td>8</td>
<td>9</td>
<td>10</td>
<td>11</td>
<td>12</td>
</tr>
<tr>
<td>Met %</td>
<td colspan="3">1</td>
<td colspan="3">2</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td colspan="3">3</td>
<td colspan="3">4</td>
</tr>
</tbody>
</table>
我打电话通过Ajax调用并通过整个的ExportToExcel功能html内的div(仅包含)。我没有在我的代码或浏览器窗口中看到任何错误。
我有很多Google搜索,并试图实现各种解决方案,但没有什么帮助了我。
请不要让我知道什么是我做了错误,也提供了实现它在MVC的最佳解决方案。
感谢
感谢@Praveen,我已经尝试过的代码和它的工作原理,但随着出口的问题是,我的表有行宽和Col跨度,这是不正确出口。这就是我没有使用它的原因。如果有可能使用相同的方式实现它,请建议我,因为我已经尝试了谷歌它。 –
@Aditya Pewekar嘿能否请您分享您的表的结构,这样我可以进一步帮助您。 –
已更新有问题的结构。我已经实现了服务器端,但寻找一个通用的解决方案。 –