C#后台动态画表(实现合并单元格) 导出到word

 

 

<input id="Submit1" type="submit" value="导出到word" runat="server" onserverclick="btn_word_Click" />

添加引用 Aspose.Words;

using Aspose.Words;
using Aspose.Words.Saving; 

 /// <summary>     /// 导出word文档     /// </summary>     /// <param name="sender"></param>     /// <param name="e"></param>     protected void btn_word_Click(object sender, EventArgs e)     {         //new一个类的对象         InsertCells insertcell = new InsertCells();         //创建word操作对象         Aspose.Words.Document doc = new Aspose.Words.Document();         Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc);         //清除设置         builder.PageSetup.ClearFormatting();         //开始画Table         builder.StartTable();         //使整个表格在页面居中         builder.RowFormat.Alignment = Aspose.Words.Tables.RowAlignment.Center;         string cont = string.Empty;         //定义word的标题         string title = "导出的表格" + "(@@@)";         //标题居中         builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;         //字体不加粗         builder.Bold = false;         //字体大小         builder.Font.Size = 16;         //将标题写入word         builder.Writeln(title);         //写一个空行         builder.Writeln("");         string name = "我是谁:??";         //插入一个单元格         insertcell.Insert(builder, name, 100);         string job = "不知道:??";         insertcell.Insert(builder, job, 150);         string time = "调查时间:????-????";         insertcell.Insert(builder, time, 290);         //行结束         builder.EndRow();         //插入空的单元格         insertcell.Insert(builder, "", 540);         builder.EndRow();         //用循环插入问题行         for (int i = 0; i < 5; i++)         {

            cont = (i + 1) + ".  " + "我是第" + (i + 1) + "个问题";             insertcell.Insert(builder, cont, 540);             builder.EndRow();             //用循环插入每个问题的答案,因为答案为双列,用判断语句排一下             for (int j = 0; j < 3; j++)             {                 //奇数且不是最后一个答案,插入包含此答案的单元格,不换行                 if (j % 2 == 0 && j < 2)                 {                     cont = Convert.ToChar(j + 97) + ".  " + "答案 " + Convert.ToChar(j + 97);                     insertcell.Insert(builder, cont, 270);                 }                 //奇数且是最后一个答案,插入包含此答案的单元格,再插入一个空的单元格,换行                 else if (j % 2 == 0 && j == 2)                 {                     cont = Convert.ToChar(j + 97) + ".  " + "答案 " + Convert.ToChar(j + 97);                     insertcell.Insert(builder, cont, 270);                     insertcell.Insert(builder, "", 270);                     //Table行结束                     builder.EndRow();                 }                 //偶数答案,插入包含此答案的单元格,换行                 else                 {                     cont = Convert.ToChar(j + 97) + ".  " + "答案 " + Convert.ToChar(j + 97);                     insertcell.Insert(builder, cont, 270);                     builder.EndRow();                 }             }             //每个问题与下一个问题间插入一个空行单元格             insertcell.Insert(builder, "", 540);             builder.EndRow();         }         //Table表结束         builder.EndTable();         string filename = "问题调查表.doc";         //以下载Word的形式打开Wrod                 SaveOptions options = SaveOptions.CreateSaveOptions(SaveFormat.Doc);         doc.Save(Response, filename, ContentDisposition.Attachment, options);     }

posted @ 2014-01-04 16:25  牡丹  阅读(566)  评论(0)    收藏  举报