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); }
浙公网安备 33010602011771号