apose生成word表格的时候,要显插入书签,然后在插入书签的地方有两种方式可以进行操作:1、填充单元格,即一个单元格一个书签2、根据书签,在书签处画表格
1、画表格
Aspose.Words.Document doc = new Aspose.Words.Document("demo.doc"); DocumentBuilder builder = new DocumentBuilder(doc); builder.MoveToBookmark("sq");//书签 builder.StartTable();//开始画Table builder.ParagraphFormat.Alignment = ParagraphAlignment.Center; // RowAlignment.Center; string str = string.Empty; builder.RowFormat.Height = 20; //添加每行数据 for (int i = 0; i < item.Rows.Count; i++) { for (int j = 0; j < item.Columns.Count; j++) { str = item.Rows[i][j].ToString(); //插入Table单元格 builder.InsertCell(); //Table单元格边框线样式 builder.CellFormat.Borders.LineStyle = LineStyle.Single; //Table此单元格宽度 跟随列头宽度 //builder.CellFormat.Width = 500; //此单元格中内容垂直对齐方式 builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center; builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.None; builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; //字体大小 builder.Font.Size = 10; //是否加粗 builder.Bold = false; if ((i == 6 && j == 1) || (i == 5 && j == 1)) { //builder.InsertImage(@"C:\Users\GXSN\Desktop\a2dd4dcdfa08ec59a493b3c069571d4f.jpg", 10, 20); builder.InsertImage(getimage(str), 60, 40);//上面的也可以,就是可能会比较慢 } else { //向此单元格中添加内容 builder.Write(str); } } //Table行结束 builder.EndRow(); builder.EndTable(); builder.InsertBreak(BreakType.LineBreak); public System.Drawing.Image getimage(string str) { WebRequest myrequest = WebRequest.Create(str); WebResponse myresponse = myrequest.GetResponse(); Stream imgstream = myresponse.GetResponseStream(); System.Drawing.Image img = System.Drawing.Image.FromStream(imgstream); try { //img.Save(Server.MapPath("test.jpg"),System.Drawing.Imaging.ImageFormat.Jpeg); MemoryStream ms = new MemoryStream(); img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); return img; //Response.ClearContent(); //需要输出图象信息 要修改HTTP头 //Response.ContentType = "image/gif"; //Response.BinaryWrite(); } catch (Exception ex) { return img; }2、书签处插入 builder.MoveToBookmark("书签"); builder.Write("单元格内容");
