如何在导出的excel中加入分页符

saman11 2006-10-17 02:22:42
我的导出代码是这样的。
public static void GetDataFile(Table table)
{
//文件名为当前日期+4位随机数
string strFileName = DateTime.Today.ToString("yyyyMMdd") + new Random(DateTime.Now.Millisecond).Next(10000).ToString() + ".xls";
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.Charset = "Default";
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + strFileName);
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("IBM437");//设置输出流为美国英语
HttpContext.Current.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
System.Globalization.CultureInfo ciExcel = new System.Globalization.CultureInfo("en-US", true);
StringWriter swExcel = new StringWriter(ciExcel);
System.Web.UI.HtmlTextWriter htwExcel = new System.Web.UI.HtmlTextWriter(swExcel);
table.RenderControl(htwExcel);
HttpContext.Current.Response.Write(swExcel.ToString());
HttpContext.Current.Response.End();
}

希望导出的文件里就已经在指定的地方加上分页符了。
...全文
1232 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sine_cai 2006-10-19
  • 打赏
  • 举报
回复
你使用的服务端空间生成到客户端后应该也是<Table>吧?否则你怎么控制在Excel的行呢?给你个实例,只要你最终生成的结果类似下面的html就可以了。
<html xmlns:x="urn:schemas-microsoft-com:office:excel">
<xml>
<x:ExcelWorkbook>
<x:ExcelWorksheets>
<x:ExcelWorksheet>
<x:Name>a</x:Name>
<x:WorksheetOptions>
<x:Panes>
<x:Pane>
</x:Pane>
</x:Panes>
</x:WorksheetOptions>
<x:PageBreaks>
<x:RowBreaks>
<x:RowBreak>
<x:Row>1</x:Row>
</x:RowBreak>
<x:RowBreak>
<x:Row>3</x:Row>
</x:RowBreak>
</x:RowBreaks>
</x:PageBreaks>
</x:ExcelWorksheet>
</x:ExcelWorksheets>
</x:ExcelWorkbook></xml>

<table><tr>
<td>Col1,Col2,Col3</td></tr>
<tr style="page-break-before:always;"><td>A,B,C</td></tr>
<tr><td>AA,BB,CC</td></tr>
</table>

</html>
saman11 2006-10-19
  • 打赏
  • 举报
回复
我这里的table不是html里的table,而是再后台创建的动态table,属于服务器端的控件,似乎加不进这个xml数据流。
saman11 2006-10-19
  • 打赏
  • 举报
回复
谢谢楼上,你的方法我去研究下,用下,可行就给分。
sine_cai 2006-10-18
  • 打赏
  • 举报
回复
可以通过创建Excel可识别的xml配置将Html的Table在Excel的打印时分页显示。控制步骤如下:
1. 首先必须使用下面这个html标记表示该文件是excel可识别的html内容(可以将这行作为输出的html标记)
<html xmlns:x="urn:schemas-microsoft-com:office:excel">
2. 在输出流中添加上下面的xml标记(这个标记用于控制打印或打印预览时的分行,注意下面标xml中的两个数字1和3,表示第一行和第三行后开始新的页。如果需要在第5行后又开始分页则可以在xml相应的位置添加上这样一个xml标记 '<x:RowBreak><x:Row>5</x:Row></x:RowBreak>')
<xml>
<x:ExcelWorkbook>
<x:ExcelWorksheets>
<x:ExcelWorksheet>
<x:Name>a</x:Name>
<x:WorksheetOptions>
<x:Panes>
<x:Pane>
</x:Pane>
</x:Panes>
</x:WorksheetOptions>
<x:PageBreaks>
<x:RowBreaks>
<x:RowBreak>
<x:Row>1</x:Row>
</x:RowBreak>
<x:RowBreak>
<x:Row>3</x:Row>
</x:RowBreak>
</x:RowBreaks>
</x:PageBreaks>
</x:ExcelWorksheet>
</x:ExcelWorksheets>
</x:ExcelWorkbook></xml>
3. 注意上面xml标记的位置,必须放在内容表格之前,最好放在<header>里面。另外,将这段xml实现定义好,通过xmldom对象可以很容易操作在需要分行的地方字节插入一个<x:RowBreak>元就可以了
xingyaohua 2006-10-17
  • 打赏
  • 举报
回复
up

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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