你们好,我想问一下,就是用response下载功能怎么控制里面的样式呢》??将一个word文档的标题居中呢???
var con = from u in db.dl_f_lawcontent
where (u.law_id == name)
select new
{
u.content
};
StringBuilder FromCon = new StringBuilder();
foreach (var item in con)
{
//填充数据
FromCon.Append(item.content + "\n");
}
string law_filename = "";
var lawname = db.dl_f_lawinfo.FirstOrDefault(m => m.law_id == name);
if (name == lawname.law_id)
{
law_filename = lawname.law_name;
}
//将数据写入word
string data = FromCon.ToString();
byte[] value = Encoding.Default.GetBytes(data);
Response.Clear();
Response.ClearHeaders();
Response.Buffer = false;
Response.ContentType = "application/msword";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(law_filename) + ".doc");//文件下载,指定默认名
//文件下载,指定默认名;Server.UrlEncode(law_filename)防止下载时文件名出现乱码
Response.BinaryWrite(value);
Response.Flush();
Response.End();
不是很明白你的意思。
应该你在生成value的过程中实现居中吧?这个是属于WORD的内容生成的范畴,跟你的这段代码没有关系。
网上有WORD生成代码,现成的,只是有点复杂。
这个我在网上没找到啊
我死想在格式里面实现居中
@@王琳: 你是希望输出的word文档在通过word打开的时候标题居中?就用我的方案就好,或者你可以选择输出为html,在通过word打开,再另存为word文档,再输出。
@519740105: 什么意思
@@王琳: 怎么做
不知道你用的什么包。不过对于这种问题的处理首先找你使用的工具(或包)的官方文档,如果有这方面的功能支持那么就一定会有方法。如果不支持那么就自己手写……如果只是为了居中,那好办---自己计算:计算行的长度L;本行显示字符数M;计算本行空白字符数N;if本行显示字符数O超过本行最大字符数,M=L,N=0,下一行显示字符为O-M,for循环计算写入下一行。
我使用的response先填充数据集