public void BuildHeaderRow(string[] ColName, Aspose.Words.Tables.Table myTable, Aspose.Words.DocumentBuilder builder) { foreach (string col in ColName) { //Clone first cell of first row to build header of the table Cell hCell = (Cell)myTable.FirstRow.FirstCell.Clone(true); //Insert cell into the first row myTable.FirstRow.AppendChild(hCell); // myTable.LastRow.AppendChild(hCell); //Move document builder cursor to the cell builder.MoveTo(hCell.FirstParagraph); //Insert text builder.Write(col); } myTable.Rows[0].Cells[0].Remove(); myTable.Rows[1].Cells[0].Remove(); myTable.Rows[0].Cells[0].CellFormat.Width = 60; //ORDERNO-PARTNO LINK myTable.Rows[0].Cells[1].CellFormat.Width = 30; // DAY myTable.Rows[0].Cells[2].CellFormat.Width = 100; // RECORDS OF myTable.Rows[0].Cells[3].CellFormat.Width = 150; // LOCATION myTable.Rows[0].Cells[4].CellFormat.Width = 80; // CLIENT MATTER NUMBER myTable.Rows[0].Cells[5].CellFormat.Width = 80; // CLAIM NUMBER myTable.Rows[0].Cells[6].CellFormat.Width = 270; // NOTE }
/// <summary> /// 在固定表格里,按列填充数据 /// </summary> /// <param name="mark">书签名称</param> /// <param name="tableData">表格数据</param> /// <param name="builder">文档构造类</param> private void OnlyFillByColumn(Bookmark mark, string[,] tableData, DocumentBuilder builder) { Aspose.Words.Tables.Table table = (Aspose.Words.Tables.Table)mark.BookmarkStart.GetAncestor(NodeType.Table); Aspose.Words.Tables.Row row = (Aspose.Words.Tables.Row)mark.BookmarkStart.GetAncestor(NodeType.Row); Cell cell = (Cell)mark.BookmarkStart.GetAncestor(NodeType.Cell); NodeCollection allTables = this.doc.GetChildNodes(NodeType.Table, true); int tableIndex = allTables.IndexOf(table); int rowIndex = table.IndexOf(row); int cellIndex = row.IndexOf(cell); int columnIndex = cellIndex; for (int i = 0; i < tableData.GetLength(0) && rowIndex < table.Rows.Count; i++) { columnIndex = cellIndex; for (int j = 0; j < tableData.GetLength(1); j++) { if (columnIndex < row.Cells.Count) { builder.MoveToCell(tableIndex, rowIndex, columnIndex++, 0); // 垂直居中对齐 builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center; // 水平居中对齐 builder.ParagraphFormat.Alignment = ParagraphAlignment.Center; builder.Write(tableData[i, j]); } } rowIndex++; } }
public void WriteTable(DataTable source) { AW.Tables.Table table = wDocBuilder.StartTable(); for (int y = 0; y < source.Columns.Count; y++) { wDocBuilder.InsertCell(); wDocBuilder.ParagraphFormat.Alignment = AW.ParagraphAlignment.Left; wDocBuilder.CellFormat.VerticalAlignment = AWTables.CellVerticalAlignment.Center; wDocBuilder.CellFormat.VerticalMerge = AWTables.CellMerge.First; wDocBuilder.CellFormat.Borders.LineStyle = AW.LineStyle.Single; wDocBuilder.Write(source.Columns[y].ColumnName + ""); } wDocBuilder.EndRow(); for (int x = 0; x < source.Rows.Count; x++) { wDocBuilder.RowFormat.Height = 25; for (int y = 0; y < source.Columns.Count; y++) { wDocBuilder.InsertCell(); wDocBuilder.Font.Size = (double)WordHelperEnumFontSize.四号; wDocBuilder.Bold = false; wDocBuilder.ParagraphFormat.Alignment = AW.ParagraphAlignment.Left; wDocBuilder.CellFormat.VerticalAlignment = AWTables.CellVerticalAlignment.Center; wDocBuilder.CellFormat.VerticalMerge = AWTables.CellMerge.First; wDocBuilder.CellFormat.Borders.LineStyle = AW.LineStyle.Single; wDocBuilder.Write(source.Rows[x][y] + ""); } wDocBuilder.EndRow(); } wDocBuilder.EndTable(); }
public bool WriteWordTable(DataTable dt, bool haveBorder) { Aspose.Words.Tables.Table table = docBuilder.StartTable();//开始画Table ParagraphAlignment paragraphAlignmentValue = docBuilder.ParagraphFormat.Alignment; docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Center; //添加Word表格 for (int row = 0; row < dt.Rows.Count; row++) { docBuilder.RowFormat.Height = 25; for (int col = 0; col < dt.Columns.Count; col++) { docBuilder.InsertCell(); docBuilder.Font.Size = 10.5; docBuilder.Font.Name = "宋体"; docBuilder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center; //垂直居中对齐 docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Center; //水平居中对齐 docBuilder.CellFormat.Width = 50.0; docBuilder.CellFormat.PreferredWidth = Aspose.Words.Tables.PreferredWidth.FromPoints(50); if (haveBorder == true) { //设置外框样式 docBuilder.CellFormat.Borders.LineStyle = LineStyle.Single; //样式设置结束 } docBuilder.Write(dt.Rows[row][col].ToString()); } docBuilder.EndRow(); } docBuilder.EndTable(); docBuilder.ParagraphFormat.Alignment = paragraphAlignmentValue; table.Alignment = Aspose.Words.Tables.TableAlignment.Center; table.PreferredWidth = Aspose.Words.Tables.PreferredWidth.Auto; return(true); }
private void CreateTable() { string tmppath = Server.MapPath("~/template/reporttemplate.doc"); Document doc = new Document(tmppath); //载入模板 DocumentBuilder builder = new DocumentBuilder(doc); double width = builder.CellFormat.Width; //获取单元格宽度 builder.MoveToBookmark("table"); //开始添加值 //添加表头 Aspose.Words.Tables.Table pTable = builder.StartTable(); awhelpter.CreateHeadCell(builder, "监测项目", 15); awhelpter.CreateHeadCell(builder, "采样分析方法", 19); awhelpter.CreateHeadCell(builder, "方法来源", 12); awhelpter.CreateHeadCell(builder, "仪器名称/型号", 12); awhelpter.CreateHeadCell(builder, "检出限", 12); builder.EndRow(); string strCellText = ""; for (var m = 0; m < 3; m++) { for (var i = 0; i < 5; i++) { if (i == 0) { strCellText = "烟尘"; } if (i == 1) { strCellText = "固定污染源排气中固体颗粒物测定与气态污染物"; } if (i == 2) { strCellText = "GB/T 16157-1996"; } if (i == 3) { strCellText = "TH-880F型微电脑烟尘平行采样仪、MA110电子天平"; } if (i == 4) { strCellText = "0.1 mg/m3"; } awhelpter.CreateCell(builder, strCellText, width); } builder.EndRow(); } doc.Range.Bookmarks["table"].Text = ""; // 清掉标示 doc.Save(Response, "baojiadan.doc", ContentDisposition.Inline, null); }
public void InsertData(List <ClientPartReport> result, Aspose.Words.Tables.Table myTable, Aspose.Words.DocumentBuilder builder) { string partLink = string.Empty; string strLiveURL = System.Configuration.ConfigurationManager.AppSettings["LiveSiteURL"].ToString(); // string[] ColName = { "Part No", "Day", "Records Of","Location", "Client Matter", "Claim No", "Note" }; foreach (ClientPartReport item in result) { Row clonedRow = (Row)myTable.FirstRow.Clone(true); // clonedRow.Cells[0].CellFormat.Width = 100; partLink = strLiveURL + "/" + "PartDetail?OrderId=" + item.OrderNo + "&PartNo=" + item.PartNo; clonedRow.Cells[0].FirstParagraph.ChildNodes.Clear(); builder.MoveTo(clonedRow.Cells[0].FirstParagraph); builder.Font.Color = Color.OrangeRed; // builder.Font.Underline = Underline.Single; builder.InsertHyperlink(item.OrderPart, partLink, false); // builder.InsertField(@"HYPERLINK " + partLink + "\t_blank", item.OrderPart); builder.Font.ClearFormatting(); // clonedRow.Cells[1].CellFormat.Width = 50; clonedRow.Cells[1].FirstParagraph.ChildNodes.Clear(); builder.MoveTo(clonedRow.Cells[1].FirstParagraph); builder.Write(item.OrderDays.ToString()); clonedRow.Cells[2].FirstParagraph.ChildNodes.Clear(); builder.MoveTo(clonedRow.Cells[2].FirstParagraph); builder.Write(item.RecordsOf); clonedRow.Cells[3].FirstParagraph.ChildNodes.Clear(); builder.MoveTo(clonedRow.Cells[3].FirstParagraph); builder.Write(item.Location); clonedRow.Cells[4].FirstParagraph.ChildNodes.Clear(); builder.MoveTo(clonedRow.Cells[4].FirstParagraph); builder.Write(item.ClaimMatterNo); clonedRow.Cells[5].FirstParagraph.ChildNodes.Clear(); builder.MoveTo(clonedRow.Cells[5].FirstParagraph); builder.Write(item.BillingClaimNo); clonedRow.Cells[6].FirstParagraph.ChildNodes.Clear(); builder.MoveTo(clonedRow.Cells[6].FirstParagraph); builder.Write(item.Note); myTable.AppendChild(clonedRow); } builder.InsertBreak(BreakType.PageBreak); }
/// <summary> /// 自动填充行 /// </summary> /// <param name="mark">书签名称</param> /// <param name="tableData">表格数据</param> /// <param name="builder">文档构造类</param> private void AutoRow(Bookmark mark, string[,] tableData, DocumentBuilder builder) { try { Aspose.Words.Tables.Table table = (Aspose.Words.Tables.Table)mark.BookmarkStart.ParentNode.PreviousSibling; Aspose.Words.Tables.Cell cellStyle; NodeCollection allTables = this.doc.GetChildNodes(NodeType.Table, true); int tableIndex = allTables.IndexOf(table); List <CellFormat> widthList = new List <CellFormat>(); for (int i = 0; i < tableData.GetLength(1); i++) { // 移动单元格 builder.MoveToCell(tableIndex, 0, i, 0); // 获取单元格样式 cellStyle = (Aspose.Words.Tables.Cell)builder.CurrentNode.GetAncestor(NodeType.Cell); widthList.Add(cellStyle.CellFormat); } // 定位到书签 builder.MoveTo(mark.BookmarkStart); for (var i = 0; i < tableData.GetLength(0); i++) { for (var j = 0; j < tableData.GetLength(1); j++) { builder.InsertCell(); // 设置样式 builder.CellFormat.Borders.LineWidth = widthList[j].Borders.LineWidth; builder.CellFormat.Borders.LineStyle = widthList[j].Borders.LineStyle; builder.CellFormat.Borders.Color = widthList[j].Borders.Color; builder.CellFormat.Width = widthList[j].Width; builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; // 垂直居中对齐 builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center; // 水平居中对齐 builder.ParagraphFormat.Alignment = ParagraphAlignment.Center; builder.Write(tableData[i, j]); } builder.EndRow(); } } catch (Exception ex) { throw new Exception(ex.Message); } }
/// <summary> /// 追加表格 /// </summary> /// <param name="tableIndex"></param> /// <param name="dt"></param> /// <param name="widthLst"></param> /// <returns></returns> public bool AddTable(int tableIndex, System.Data.DataTable dt, List <double> widthLst) { NodeCollection allTables = _Doc.GetChildNodes(NodeType.Table, true); //拿到所有表格 Aspose.Words.Tables.Table table = allTables[tableIndex] as Aspose.Words.Tables.Table; //拿到第tableIndex个表格 for (int row = 0; row < dt.Rows.Count; row++) { Aspose.Words.Tables.Row r = new Aspose.Words.Tables.Row(_Doc); var newRow = CreateRow(dt.Columns.Count, dt.Rows[row].ItemArray, _Doc, widthLst); //创建一行 table.Rows.Add(newRow); //添加一行 } return(true); }
private void dddd() { string tmppath = Server.MapPath("~/template/reporttemplate.doc"); Document doc = new Document(tmppath); //载入模板 DocumentBuilder builder = new DocumentBuilder(doc); Aspose.Words.Tables.Table pTable = builder.StartTable(); builder.InsertCell(); // builder.CellFormat.VerticalMerge = CellMerge.First; builder.Write("批测样品数"); builder.InsertCell(); // builder.CellFormat.HorizontalMerge = CellMerge.First; builder.Write("精密度控制"); builder.InsertCell(); // builder.CellFormat.HorizontalMerge = CellMerge.Previous; builder.EndRow(); builder.InsertCell(); // This cell is vertically merged to the cell above and should be empty. // builder.CellFormat.VerticalMerge = CellMerge.Previous; builder.InsertCell(); //builder.CellFormat.HorizontalMerge = CellMerge.None; builder.Write("平行样百分比(%)"); builder.InsertCell(); // builder.CellFormat.HorizontalMerge = CellMerge.None; builder.Write("平行样合格率(%)"); builder.EndRow(); ///////////////////////////////////////合并 Cell pStartCell = pTable.Rows[0].Cells[0]; Cell pEndCell = pTable.Rows[1].Cells[0]; awhelpter.MergeCells(pStartCell, pEndCell); pStartCell = pTable.Rows[0].Cells[1]; pEndCell = pTable.Rows[0].Cells[2]; awhelpter.MergeCells(pStartCell, pEndCell); doc.Save(Response, "baojiadan.doc", ContentDisposition.Inline, null); }
protected void MergeCells(Cell startCell, Cell endCell) { Aspose.Words.Tables.Table parentTable = startCell.ParentRow.ParentTable; // Find the row and cell indices for the start and end cell. Point startCellPos = new Point(startCell.ParentRow.IndexOf(startCell), parentTable.IndexOf(startCell.ParentRow)); Point endCellPos = new Point(endCell.ParentRow.IndexOf(endCell), parentTable.IndexOf(endCell.ParentRow)); // Create the range of cells to be merged based off these indices. Inverse each index if the end cell if before the start cell. Rectangle mergeRange = new Rectangle(Math.Min(startCellPos.X, endCellPos.X), Math.Min(startCellPos.Y, endCellPos.Y), Math.Abs(endCellPos.X - startCellPos.X) + 1, Math.Abs(endCellPos.Y - startCellPos.Y) + 1); foreach (Row row in parentTable.Rows) { foreach (Cell cell in row.Cells) { Point currentPos = new Point(row.IndexOf(cell), parentTable.IndexOf(row)); // Check if the current cell is inside our merge range then merge it. if (mergeRange.Contains(currentPos)) { if (mergeRange.Width > 1) { if (currentPos.X == mergeRange.X) { cell.CellFormat.HorizontalMerge = CellMerge.First; } else { cell.CellFormat.HorizontalMerge = CellMerge.Previous; } } if (mergeRange.Height > 1) { if (currentPos.Y == mergeRange.Y) { cell.CellFormat.VerticalMerge = CellMerge.First; } else { cell.CellFormat.VerticalMerge = CellMerge.Previous; } } } } } }
/// <summary> /// 合并 /// </summary> /// <param name="builder"></param> /// <param name="table"></param> /// <param name="mcell"></param> public static void MergeCell(Aspose.Words.DocumentBuilder builder, Table table, IList <MCell> mcell) { try { var rCount = table.Rows.Count; var cCount = table.Rows[0].Cells.Count; for (int i = 0; i < mcell.Count; i++) { var m = mcell[i]; if (m.IsColumn) { //某一列进行合并 //到达的行大于总行数、或者起始的某一列所以大于总列数 if (m.toR2C > rCount || cCount < m.C2RIndex) { continue; } //开始位置,起始行的开始列 Cell sCell = table.Rows[m.fromR2C].Cells[m.C2RIndex]; //结束位置,结束行的开始列 Cell eCell = table.Rows[m.toR2C].Cells[m.C2RIndex]; builder.AAMergeCells(sCell, eCell); } else { //某一行进行合并 //到达列大于总列数或者起始的某一行大于总行数 if (m.toR2C > cCount || rCount < m.C2RIndex) { continue; } Cell sCell = table.Rows[m.C2RIndex].Cells[m.fromR2C]; Cell eCell = table.Rows[m.C2RIndex].Cells[m.toR2C]; builder.AAMergeCells(sCell, eCell); } } } catch (Exception ex) { } }
protected void btnGenerateReport_Click(object sender, EventArgs e) { hudong_number = int.Parse(this.ltlTieba_r.Text) + int.Parse(this.ltlBBS_r.Text) + int.Parse(this.ltlWeibo_r.Text) + int.Parse(this.ltlWeixin_r.Text) + int.Parse(this.ltlVideo_r.Text) + int.Parse(this.ltlBlog_r.Text); int mingan_number = int.Parse(this.ltlNews_n.Text) + int.Parse(this.ltlTieba_n.Text) + int.Parse(this.ltlBBS_n.Text) + int.Parse(this.ltlWeibo_n.Text) + int.Parse(this.ltlWeixin_n.Text) + int.Parse(this.ltlVideo_n.Text) + int.Parse(this.ltlBlog_n.Text); DateTime startDate = DateTime.Now; DateTime endDate = DateTime.Now; ListItem customerItem = this.ddlCustomer.SelectedItem; ListItem reportItem = this.ddlReportType.SelectedItem; int customerId = int.Parse(customerItem.Value); int currentNumber = 0; int totalNumber = 0; string reportType = this.ddlReportType.SelectedValue; string news_ids = this.hideSelectedIDs.Value; using (var context = new ReportContext()) { int reportTypeId = int.Parse(reportType); var entity = context.ReportNumbers.FirstOrDefault(a => a.CustomerID == customerId && a.ReportTypeId == reportTypeId); if (entity != null) { currentNumber = entity.CurrentNumber.Value; totalNumber = entity.TotalNumber.Value; } } switch (reportItem.Value) { case "1": //日报 startDate = DateTime.Now; break; case "2": //周报 startDate = DateTime.Now.AddDays(-7); break; case "3": //旬报 startDate = DateTime.Now.AddDays(-10); break; case "4": //半月报 startDate = DateTime.Now.AddDays(-15); break; case "5": //月报 startDate = DateTime.Now.AddDays(-30); break; case "6": //季度报 startDate = DateTime.Now.AddDays(-90); break; case "7": //年报 startDate = DateTime.Now.AddYears(-1); break; } Document document = new Document(Server.MapPath("~/template_files/week_report.doc")); DocumentBuilder docBuilder = new DocumentBuilder(document); document.Range.Replace("{Company}", customerItem.Text, false, false); document.Range.Replace("{ReportType}", reportItem.Text, false, false); document.Range.Replace("{year}", DateTime.Now.ToString("yyyy"), false, false); document.Range.Replace("{month}", DateTime.Now.ToString("MM"), false, false); document.Range.Replace("{day}", DateTime.Now.ToString("dd"), false, false); document.Range.Replace("{number1}", currentNumber.ToString(), false, false); document.Range.Replace("{number2}", totalNumber.ToString(), false, false); document.Range.Replace("{TypeString}", CommonUtility.ReplaceReportType(reportItem.Text), false, false); document.Range.Replace("{news_number}", this.ltlNews_r.Text, false, false); document.Range.Replace("{hudong_number}", hudong_number.ToString(), false, false); document.Range.Replace("{mingan_number}", mingan_number.ToString(), false, false); document.Range.Replace(new Regex("{info_total_pic}"), new ReplaceAndInsertImage(Server.MapPath(this.txtPath0.Text)), false); //本周重点敏感舆情、风险分析研判与处置建议 using (var context = new ReportContext()) { if (!string.IsNullOrEmpty(news_ids)) { var articleIds = news_ids.Split(',').Select(a => int.Parse(a)); var entities = context.Articles.Where(a => a.CustomerID == customerId && articleIds.Contains(a.ID)).OrderByDescending(a => a.ID).Select(a => a); int i = 0; docBuilder.MoveToMergeField("Content"); foreach (var entity in entities) { i++; //插入标题 docBuilder.Writeln(); docBuilder.Font.Name = "楷体_GB2312"; docBuilder.Font.Size = 16; docBuilder.Font.Bold = true; docBuilder.Writeln(String.Format("{0}.{1}", i, entity.Title)); docBuilder.Font.ClearFormatting(); //插入内容 docBuilder.Font.Size = 16; docBuilder.Font.Name = "仿宋_GB2312"; docBuilder.Writeln(entity.Content); docBuilder.Font.ClearFormatting(); //插入图片 docBuilder.InsertImage(Server.MapPath(entity.ScreenshotsPath), RelativeHorizontalPosition.Margin, 1, RelativeVerticalPosition.Default, 10, 430, 220, WrapType.Square); //插入链接 docBuilder.Font.Color = Color.Blue; docBuilder.Font.Size = 11; docBuilder.Font.Underline = Underline.Single; docBuilder.InsertHyperlink(entity.Url, entity.Url, false); docBuilder.Font.ClearFormatting(); docBuilder.Font.Name = "仿宋_GB2312"; docBuilder.Font.Size = 16; docBuilder.Writeln(); docBuilder.Writeln(String.Format("风险分析研判:{0}", entity.JudgeContent)); docBuilder.Write("舆情星级:"); docBuilder.Font.ClearFormatting(); //插入舆情星级 docBuilder.Font.Name = "仿宋_GB2312"; docBuilder.Font.Size = 16; docBuilder.Font.Color = Color.Red; docBuilder.Writeln("★".Repeat(entity.Rating.Value)); docBuilder.Font.ClearFormatting(); //插入处置建议 docBuilder.Font.Name = "仿宋_GB2312"; docBuilder.Font.Size = 16; docBuilder.Write(String.Format("处置建议:{0}", entity.SuggestContent));; docBuilder.Font.ClearFormatting(); } } } document.Range.Replace("{DistributeSummary}", this.txtDistributeSummary.Text.Replace("\r\n", "").Replace("#", ""), false, false); document.Range.Replace(new Regex("{Distribute_Pic}"), new ReplaceAndInsertImage(Server.MapPath(this.txtPath10.Text)), false); document.Range.Replace("{DistributeContent}", this.txtDistributeContent.Text.Replace("\r\n", ""), false, false); document.Range.Replace(new Regex("{NextWeekWarning_Pic}"), new ReplaceAndInsertImage(Server.MapPath(this.txtPath11.Text)), false); document.Range.Replace("{NextWeekMinganValue}", this.ddlNextWeekMinganValue.SelectedValue, false, false); document.Range.Replace("{NextWeekSustainNumber}", this.txtNextWeekSustainNumber.Text, false, false); docBuilder.MoveToMergeField("Questions"); int b = 0; docBuilder.Font.Size = 16; docBuilder.Font.Name = "仿宋_GB2312"; docBuilder.Writeln(); foreach (ListItem item in this.lstAttentionQuestions.Items) { b++; string str = String.Format("{0}.{1}", b, item.Value); docBuilder.Writeln(str); } docBuilder.Font.ClearFormatting(); document.Range.Replace(new Regex("{week_pic}"), new ReplaceAndInsertImage(Server.MapPath(this.txtPath1.Text)), false); document.Range.Replace("{lowExponent}", this.txtLowExponent.Value, false, false); document.Range.Replace("{heightExponent}", this.txtHeightExponent.Value, false, false); document.Range.Replace("{avgExponent}", this.txtAvgExponent.Value, false, false); document.Range.Replace("{startMonth}", this.txtStartMonth.Value, false, false); document.Range.Replace("{startDay}", this.txtStartdDay.Value, false, false); document.Range.Replace("{lowNumber}", this.txtLowNumber.Value, false, false); document.Range.Replace("{endMonth}", this.txtEndMonth.Value, false, false); document.Range.Replace("{endDay}", this.txtEndDay.Value, false, false); document.Range.Replace("{heightNumber}", this.txtHeightNumber.Value, false, false); document.Range.Replace("{trend}", this.ddlTrend.Value, false, false); //-----------------部分新闻报道摘录--------------------------------- docBuilder.MoveToMergeField("ReportsExcerpt"); Aspose.Words.Tables.Table table = docBuilder.StartTable(); docBuilder.CellFormat.Borders.LineStyle = LineStyle.Single; docBuilder.CellFormat.Shading.BackgroundPatternColor = Color.FromArgb(217, 217, 217); docBuilder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center; docBuilder.Font.Name = "仿宋_GB2312"; docBuilder.Font.Size = 10; docBuilder.Font.Bold = true; docBuilder.InsertCell(); docBuilder.CellFormat.Width = 85.0; docBuilder.Write("序号"); docBuilder.InsertCell(); docBuilder.CellFormat.Width = 86.0; docBuilder.Write("来源"); docBuilder.InsertCell(); docBuilder.CellFormat.Width = 76.0; docBuilder.Write("时间"); docBuilder.InsertCell(); docBuilder.CellFormat.Width = 273.0; docBuilder.Write("文章标题"); docBuilder.InsertCell(); docBuilder.CellFormat.Width = 95.0; docBuilder.Write("转载量"); docBuilder.EndRow(); docBuilder.Font.ClearFormatting(); using (var context = new ReportContext()) { if (!string.IsNullOrEmpty(this.hideNewsId.Value)) { string newsIds = this.hideNewsId.Value; var articleIds = newsIds.Split(',').Select(a => int.Parse(a)); var entities = context.Articles.Where(a => a.CustomerID == customerId && articleIds.Contains(a.ID)).OrderByDescending(a => a.ID).Select(a => a); int c = 0; foreach (var entity in entities) { c++; docBuilder.Font.Name = "仿宋_GB2312"; docBuilder.Font.Size = 10; docBuilder.InsertCell(); docBuilder.CellFormat.Width = 85.0; docBuilder.Write(c.ToString()); docBuilder.InsertCell(); docBuilder.CellFormat.Width = 86.0; docBuilder.Write(entity.Site); docBuilder.InsertCell(); docBuilder.CellFormat.Width = 76.0; docBuilder.Write(entity.AddDate.Value.ToString("MM月dd日")); docBuilder.InsertCell(); docBuilder.CellFormat.Width = 273.0; docBuilder.Write(entity.Title); docBuilder.InsertCell(); docBuilder.CellFormat.Width = 95.0; docBuilder.Write(entity.ReplyCount.ToString()); docBuilder.EndRow(); docBuilder.Font.ClearFormatting(); } } } docBuilder.EndTable(); document.Range.Replace(new Regex("{attention_pic}"), new ReplaceAndInsertImage(Server.MapPath(this.txtPath2.Text)), false); document.Range.Replace("{total_AttentionNumber}", this.txtTotal_AttentionNumber.Value, false, false); document.Range.Replace("{mobile_AttentNumber}", this.txtMobile_AttentionNumber.Value, false, false); document.Range.Replace("{total_FloatingType}", this.ddlTotal_FloatingType.Value, false, false); document.Range.Replace("{total_AttentionPercent}", this.txtTotal_AttentionPercent.Value, false, false); document.Range.Replace("{mobile_FloatingType}", this.ddlMobile_FloatingType.Value, false, false); document.Range.Replace("{mobile_AttentionPercent}", this.txtMobile_AttentionPercent.Value, false, false); StringBuilder cityBuilder = new StringBuilder(); foreach (ListItem item in this.lstAttentionCities.Items) { cityBuilder.AppendFormat("{0}、", item.Value); } string cities = cityBuilder.ToString().TrimEnd('、'); document.Range.Replace("{cities}", cities, false, false); document.Range.Replace(new Regex("{police_pic}"), new ReplaceAndInsertImage(Server.MapPath(this.txtPath3.Text)), false); document.Range.Replace("{Topic1Guide}", this.txtTopic1Guide.Text.Replace("\r\n", ""), false, false); document.Range.Replace(new Regex("{Topic1_pic}"), new ReplaceAndInsertImage(Server.MapPath(this.txtPath4.Text)), false); document.Range.Replace("{Topic2Guide}", this.txtTopic2Guide.Text.Replace("\r\n", ""), false, false); document.Range.Replace(new Regex("{Topic2_pic}"), new ReplaceAndInsertImage(Server.MapPath(this.txtPath5.Text)), false); document.Range.Replace("{Topic3Guide}", this.txtTopic3Guide.Text.Replace("\r\n", ""), false, false); document.Range.Replace(new Regex("{Topic3_pic}"), new ReplaceAndInsertImage(Server.MapPath(this.txtPath6.Text)), false); document.Range.Replace(new Regex("{Investment_pic}"), new ReplaceAndInsertImage(Server.MapPath(this.txtPath7.Text)), false); document.Range.Replace(new Regex("{Technology_pic}"), new ReplaceAndInsertImage(Server.MapPath(this.txtPath8.Text)), false); document.Range.Replace(new Regex("{Reference_pic}"), new ReplaceAndInsertImage(Server.MapPath(this.txtPath9.Text)), false); string fileName = String.Format("{0}网络舆情{1}第{2}期.doc", customerItem.Text, reportItem.Text, currentNumber.ToString()); StringBuilder questionsBuilder = new StringBuilder(); foreach (ListItem item in this.lstAttentionQuestions.Items) { questionsBuilder.AppendFormat("{0}|", item.Value); } string questions = questionsBuilder.ToString().TrimEnd('|'); using (var context = new ReportContext()) { var report = new Report { ReportName = fileName, Company = customerItem.Text, ReportType = reportType, Year = DateTime.Now.ToString("yyyy"), Month = DateTime.Now.ToString("MM"), Day = DateTime.Now.ToString("dd"), CurrentNumber = currentNumber.ToString(), TotalNumber = totalNumber.ToString(), News_number = int.Parse(this.ltlNews_r.Text), Hudong_number = hudong_number, Mingan_number = mingan_number, Info_total_pic = this.txtPath0.Text, PriorityArticles = this.hideSelectedIDs.Value, DistributeSummary = this.txtDistributeSummary.Text.Replace("#", ""), Distribute_Pic = this.txtPath10.Text, DistributeContent = this.txtDistributeContent.Text, NextWeekWarning_Pic = this.txtPath11.Text, NextWeekMinganValue = this.ddlNextWeekMinganValue.SelectedValue, NextWeekSustainNumber = int.Parse(this.txtNextWeekSustainNumber.Text), AttentionQuestions = questions, ReportsExcerpt = this.hideNewsId.Value, Week_Pic = this.txtPath1.Text, LowExponent = int.Parse(this.txtLowExponent.Value), HeightExponent = int.Parse(this.txtHeightExponent.Value), AvgExponent = int.Parse(this.txtAvgExponent.Value), StartMonth = int.Parse(this.txtStartMonth.Value), StartDay = int.Parse(this.txtStartdDay.Value), LowNumber = int.Parse(this.txtLowNumber.Value), EndMonth = int.Parse(this.txtEndMonth.Value), EndDay = int.Parse(this.txtEndDay.Value), HeightNumber = int.Parse(this.txtHeightNumber.Value), Tend = this.ddlTrend.Value, Attention_Picture = this.txtPath2.Text, Total_AttentionNumber = int.Parse(this.txtTotal_AttentionNumber.Value), Mobile_AttentNumber = int.Parse(this.txtMobile_AttentionNumber.Value), Total_FloatingType = this.ddlTotal_FloatingType.Value, Mobile_FloatingType = this.ddlMobile_FloatingType.Value, Total_AttentionPercent = this.txtTotal_AttentionPercent.Value, Mobile_AttentionPercent = this.txtMobile_AttentionPercent.Value, Police_pic = this.txtPath3.Text, AttentionCities = cities, Topic1Guide = this.txtTopic1Guide.Text, Topic1_pic = this.txtPath4.Text, Topic2Guide = this.txtTopic2Guide.Text, Topic2_pic = this.txtPath5.Text, Topic3Guide = this.txtTopic3Guide.Text, Topic3_pic = this.txtPath6.Text, Investment_pic = this.txtPath7.Text, Technology_pic = this.txtPath8.Text, Reference_pic = this.txtPath9.Text, AddDate = DateTime.Now }; context.Reports.Add(report); int reportTypeId = int.Parse(reportType); var entity = context.ReportNumbers.FirstOrDefault(a => a.CustomerID == customerId && a.ReportTypeId == reportTypeId); if (entity != null) { entity.CurrentNumber++; entity.TotalNumber++; context.SaveChanges(); } try { context.SaveChanges(); } catch (Exception ex) { throw new Exception(ex.Message); } } using (MemoryStream ms = new MemoryStream()) { document.Save(ms, SaveOptions.CreateSaveOptions(SaveFormat.Doc)); Response.ContentType = "application/msword"; Response.AddHeader("content-disposition", "attachment;filename=" + fileName); Response.BinaryWrite(ms.ToArray()); Response.End(); } }
/// <summary> /// 创建数据库字典文档数据库概况一览表 /// </summary> /// <param name="builder"></param> /// <param name="tables"></param> private static void CreateOverviewTable(Aspose.Words.DocumentBuilder builder, List <TableDto> tables) { // 清除段落样式 builder.ParagraphFormat.ClearFormatting(); // TODO 创建表格 Aspose.Words.Tables.Table overviewTable = builder.StartTable(); #region 表格列设置,列标题,列宽,字体等 // Make the header row. builder.InsertCell(); // Set the left indent for the table. Table wide formatting must be applied after // at least one row is present in the table. overviewTable.Alignment = Aspose.Words.Tables.TableAlignment.Center; overviewTable.AllowAutoFit = true; // Set height and define the height rule for the header row. builder.RowFormat.Height = 40.0; builder.RowFormat.HeightRule = Aspose.Words.HeightRule.AtLeast; // Some special features for the header row. builder.CellFormat.Shading.BackgroundPatternColor = System.Drawing.Color.FromArgb(198, 217, 241); builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center; builder.ParagraphFormat.Alignment = Aspose.Words.ParagraphAlignment.Center; builder.Font.Size = 14; builder.Font.Name = "Arial"; builder.Font.Bold = true; builder.CellFormat.Width = 100.0; builder.Write("序号"); builder.InsertCell(); builder.Write("表名"); builder.InsertCell(); builder.Write("注释/说明"); builder.EndRow(); #endregion // TODO 遍历数据库表集合 foreach (var table in tables) { #region 遍历表格数据行写入 // Set features for the other rows and cells. builder.CellFormat.Shading.BackgroundPatternColor = System.Drawing.Color.White; builder.CellFormat.Width = 100.0; builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center; // Reset height and define a different height rule for table body builder.RowFormat.Height = 40.0; builder.InsertCell(); // Reset font formatting. builder.Font.Size = 12; builder.Font.Bold = false; builder.Write(table.TableOrder); // 序号 builder.InsertCell(); builder.Write(table.TableName); // 表名 builder.InsertCell(); builder.Write((!string.IsNullOrWhiteSpace(table.Comment) ? table.Comment : "")); // 说明 #endregion builder.EndRow(); } // TODO 表格创建完成,结束 builder.EndTable(); }
/// <summary> /// 创建数据库字典文档修订日志表 /// </summary> /// <param name="builder"></param> private static void CreateLogTable(Aspose.Words.DocumentBuilder builder) { // 清除段落样式 builder.ParagraphFormat.ClearFormatting(); // TODO 创建表格 Aspose.Words.Tables.Table logTable = builder.StartTable(); #region 表格列设置,列标题,列宽,字体等 // Make the header row. builder.InsertCell(); // Set the left indent for the table. Table wide formatting must be applied after // at least one row is present in the table. logTable.Alignment = Aspose.Words.Tables.TableAlignment.Center; logTable.AllowAutoFit = true; // Set height and define the height rule for the header row. builder.RowFormat.Height = 40.0; builder.RowFormat.HeightRule = Aspose.Words.HeightRule.AtLeast; // Some special features for the header row. builder.CellFormat.Shading.BackgroundPatternColor = System.Drawing.Color.FromArgb(198, 217, 241); builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center; builder.ParagraphFormat.Alignment = Aspose.Words.ParagraphAlignment.Center; builder.Font.Size = 14; builder.Font.Name = "Arial"; builder.Font.Bold = true; builder.CellFormat.Width = 100.0; builder.Write("版本号"); // We don't need to specify the width of this cell because it's inherited from the previous cell. builder.InsertCell(); builder.Write("修订日期"); builder.InsertCell(); builder.Write("修订内容"); builder.InsertCell(); builder.Write("修订人"); builder.InsertCell(); builder.Write("审核人"); builder.EndRow(); #endregion for (var i = 0; i < 5; i++) { #region 遍历表格数据行写入 // Set features for the other rows and cells. builder.CellFormat.Shading.BackgroundPatternColor = System.Drawing.Color.White; builder.CellFormat.Width = 100.0; builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center; // Reset height and define a different height rule for table body builder.RowFormat.Height = 40.0; builder.InsertCell(); // Reset font formatting. builder.Font.Size = 12; builder.Font.Bold = false; builder.Write(""); // 版本号 builder.InsertCell(); builder.Write(""); // 修订日期 builder.InsertCell(); builder.Write(""); // 修订内容 builder.InsertCell(); builder.Write(""); // 修订人 builder.InsertCell(); builder.Write(""); // 审核人 builder.EndRow(); #endregion } // TODO 表格创建完成,结束 builder.EndTable(); }
/// <summary> /// 引用Aspose.Words.dll导出word数据库字典文档 /// 注意:不依赖微软office办公软件 /// </summary> /// <param name="databaseName"></param> /// <param name="tables"></param> public static void ExportWordByAsposeWords(string fileName, string databaseName, List <TableDto> tables) { Aspose.Words.Document doc = new Aspose.Words.Document(); // TODO document properties doc.BuiltInDocumentProperties.Subject = "设计文档"; doc.BuiltInDocumentProperties.ContentType = "数据库字典"; doc.BuiltInDocumentProperties.Title = "数据库字典文档"; doc.BuiltInDocumentProperties.Author = doc.BuiltInDocumentProperties.LastSavedBy = doc.BuiltInDocumentProperties.Manager = "trycache"; doc.BuiltInDocumentProperties.Company = "waodng"; doc.BuiltInDocumentProperties.Version = doc.BuiltInDocumentProperties.RevisionNumber = 1; doc.BuiltInDocumentProperties.ContentStatus = "初稿"; doc.BuiltInDocumentProperties.NameOfApplication = "DBCHM"; doc.BuiltInDocumentProperties.LastSavedTime = doc.BuiltInDocumentProperties.CreatedTime = System.DateTime.Now; // TODO header and footer setting Aspose.Words.HeaderFooter header = new Aspose.Words.HeaderFooter(doc, Aspose.Words.HeaderFooterType.HeaderPrimary); doc.FirstSection.HeadersFooters.Add(header); // Add a paragraph with text to the header. header.AppendParagraph("数据库字典文档").ParagraphFormat.Alignment = Aspose.Words.ParagraphAlignment.Right; Aspose.Words.HeaderFooter footer = new Aspose.Words.HeaderFooter(doc, Aspose.Words.HeaderFooterType.FooterPrimary); doc.FirstSection.HeadersFooters.Add(footer); // Add a paragraph with text to the footer. footer.AppendParagraph(" 版权所有 @ waodng ").ParagraphFormat.Alignment = Aspose.Words.ParagraphAlignment.Center; Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc); // TODO 创建文档标题书签 CreateBookmark(builder, Aspose.Words.ParagraphAlignment.Center, Aspose.Words.OutlineLevel.Level1, 25, asposeBookmark_prefix + "0", "数据库字典文档"); builder.ParagraphFormat.OutlineLevel = Aspose.Words.OutlineLevel.BodyText; builder.Writeln("—— " + databaseName); // TODO 换行 builder.InsertBreak(Aspose.Words.BreakType.ParagraphBreak); builder.InsertBreak(Aspose.Words.BreakType.ParagraphBreak); builder.InsertBreak(Aspose.Words.BreakType.ParagraphBreak); // TODO 数据库字典文档修订日志表 CreateBookmark(builder, Aspose.Words.ParagraphAlignment.Center, Aspose.Words.OutlineLevel.Level2, 16, asposeBookmarkLog, AppConst.LOG_CHAPTER_NAME); CreateLogTable(builder); builder.InsertBreak(Aspose.Words.BreakType.PageBreak); // TODO 创建数据库字典文档数据库概况一览表 CreateBookmark(builder, Aspose.Words.ParagraphAlignment.Center, Aspose.Words.OutlineLevel.Level2, 16, asposeBookmarkOverview, AppConst.TABLE_CHAPTER_NAME); CreateOverviewTable(builder, tables); builder.InsertBreak(Aspose.Words.BreakType.PageBreak); // TODO 创建书签 CreateBookmark(builder, Aspose.Words.ParagraphAlignment.Left, Aspose.Words.OutlineLevel.Level2, 16, asposeBookmark_prefix + 0, AppConst.TABLE_STRUCTURE_CHAPTER_NAME); int i = 0; // 计数器 // TODO 遍历数据库表集合 foreach (var table in tables) { string bookmarkName = table.TableName + " " + (!string.IsNullOrWhiteSpace(table.Comment) ? table.Comment : ""); // TODO 创建书签 CreateBookmark(builder, Aspose.Words.ParagraphAlignment.Left, Aspose.Words.OutlineLevel.Level3, 16, asposeBookmark_prefix + i, table.TableOrder + "、" + bookmarkName); // TODO 遍历数据库表字段集合 // TODO 创建表格 Aspose.Words.Tables.Table asposeTable = builder.StartTable(); // 清除段落样式 builder.ParagraphFormat.ClearFormatting(); #region 表格列设置,列标题,列宽,字体等 // Make the header row. builder.InsertCell(); // Set the left indent for the table. Table wide formatting must be applied after // at least one row is present in the table. asposeTable.Alignment = Aspose.Words.Tables.TableAlignment.Center; asposeTable.PreferredWidth = PreferredWidth.FromPercent(120); asposeTable.AllowAutoFit = false; // Set height and define the height rule for the header row. builder.RowFormat.Height = 40.0; builder.RowFormat.HeightRule = Aspose.Words.HeightRule.AtLeast; // Some special features for the header row. builder.CellFormat.Shading.BackgroundPatternColor = System.Drawing.Color.FromArgb(198, 217, 241); builder.ParagraphFormat.Alignment = Aspose.Words.ParagraphAlignment.Center; builder.Font.Size = 14; builder.Font.Name = "Arial"; builder.Font.Bold = true; builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(8); builder.Write("序号"); // We don't need to specify the width of this cell because it's inherited from the previous cell. builder.InsertCell(); builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20); builder.Write("列名"); builder.InsertCell(); builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(12); builder.Write("数据类型"); builder.InsertCell(); builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(8); builder.Write("长度"); builder.InsertCell(); builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(8); builder.Write("小数位"); builder.InsertCell(); builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(8); builder.Write("主键"); builder.InsertCell(); builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(8); builder.Write("自增"); builder.InsertCell(); builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(8); builder.Write("允许空"); builder.InsertCell(); builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(10); builder.Write("默认值"); builder.InsertCell(); builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(30); builder.Write("列说明"); builder.EndRow(); #endregion foreach (var column in table.Columns) { #region 遍历表格数据行写入 // Set features for the other rows and cells. builder.CellFormat.Shading.BackgroundPatternColor = System.Drawing.Color.White; builder.CellFormat.Width = 100.0; builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center; //builder.CellFormat.FitText = true; // Reset height and define a different height rule for table body builder.RowFormat.Height = 60.0; builder.RowFormat.HeightRule = Aspose.Words.HeightRule.AtLeast; builder.InsertCell(); // Reset font formatting. builder.Font.Size = 12; builder.Font.Bold = false; builder.Write(column.ColumnOrder); // 序号 builder.InsertCell(); builder.Write(column.ColumnName); // 列名 builder.InsertCell(); builder.Write(column.ColumnTypeName); // 数据类型 builder.InsertCell(); builder.Write(column.Length); // 长度 builder.InsertCell(); builder.Write(column.Scale); // 小数位 builder.InsertCell(); builder.Write(column.IsPK); // 主键 builder.InsertCell(); builder.Write(column.IsIdentity); // 自增 builder.InsertCell(); builder.Write(column.CanNull); // 是否为空 builder.InsertCell(); builder.Font.Size = 10; builder.Write(column.DefaultVal); // 默认值 builder.InsertCell(); builder.Font.Size = 10; builder.Write(column.Comment); // 列说明 builder.EndRow(); #endregion } // TODO 表格创建完成,结束 //asposeTable.PreferredWidth = Aspose.Words.Tables.PreferredWidth.Auto; //asposeTable.AutoFit(Aspose.Words.Tables.AutoFitBehavior.AutoFitToContents); builder.EndTable(); i++; // TODO page breaks if (i < tables.Count) { builder.InsertBreak(Aspose.Words.BreakType.PageBreak); } } // TODO 添加水印 //InsertWatermarkText(doc, "DBCHM-51Try.Top"); doc.Save(fileName); }
protected void ExportButton_Click(object sender, EventArgs e) { try { // Check for an Aspose.Words license file in the local file system, and then apply it if it exists. string licenseFile = Server.MapPath("~/App_Data/Aspose.Words.lic"); if (File.Exists(licenseFile)) { License license = new License(); license.SetLicense(licenseFile); } Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); Aspose.Words.Tables.Table table = builder.StartTable(); // Make the header row. builder.InsertCell(); // Set the left indent for the table. Table wide formatting must be applied after // at least one row is present in the table. table.LeftIndent = 20.0; // Set height and define the height rule for the header row. builder.RowFormat.Height = 40.0; builder.RowFormat.HeightRule = HeightRule.AtLeast; // Some special features for the header row. builder.CellFormat.Shading.BackgroundPatternColor = Color.FromArgb(198, 217, 241); builder.ParagraphFormat.Alignment = ParagraphAlignment.Left; builder.Font.Size = 10; builder.Font.Name = "Arial"; builder.Font.Bold = true; builder.Write("Name"); // We don't need to specify the width of this cell because it's inherited from the previous cell. builder.InsertCell(); builder.Write("LoginName"); builder.InsertCell(); builder.Write("Email"); // We don't need to specify the width of this cell because it's inherited from the previous cell. builder.InsertCell(); builder.Write("Create DateTime"); builder.EndRow(); // Set features for the other rows and cells. builder.CellFormat.Shading.BackgroundPatternColor = Color.White; builder.CellFormat.Width = 100.0; builder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center; // Reset height and define a different height rule for table body. builder.RowFormat.Height = 15.0; builder.RowFormat.HeightRule = HeightRule.Auto; // Reset font formatting. builder.Font.Size = 10; builder.Font.Bold = false; foreach (GridViewRow row in UmbracoMembersGridView.Rows) { if (row.RowType == DataControlRowType.DataRow) { CheckBox chkRow = (row.Cells[0].FindControl("SelectedCheckBox") as CheckBox); if (chkRow.Checked) { // Build the other cells. builder.InsertCell(); builder.Write(row.Cells[1].Text.ToString()); builder.InsertCell(); builder.Write(row.Cells[2].Text.ToString()); builder.InsertCell(); builder.CellFormat.Width = 200.0; builder.Write(row.Cells[3].Text.ToString()); builder.InsertCell(); builder.Write(row.Cells[4].Text.ToString()); builder.EndRow(); } } } // Saves the document to the local file system. string fname = System.Guid.NewGuid().ToString() + "." + GetSaveFormat(ExportTypeDropDown.SelectedValue); doc.Save(Server.MapPath("~/App_Data/") + fname); Response.Clear(); Response.Buffer = true; Response.AddHeader("content-disposition", $"attachment;filename=ExportedFile_{DateTime.Now.Day}_{DateTime.Now.Month}_{DateTime.Now.Year}_{DateTime.Now.Hour}_{DateTime.Now.Minute}_{DateTime.Now.Second}_{DateTime.Now.Millisecond}.{GetSaveFormat(ExportTypeDropDown.SelectedValue)}"); Response.Charset = ""; Response.ContentType = "application/pdf"; Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.ContentType = "Application/" + GetSaveFormat(ExportTypeDropDown.SelectedValue); // Get the physical path to the file. string FilePath = MapPath("~/App_Data/" + fname); // Write the file directly to the HTTP content output stream. Response.WriteFile(FilePath); Response.Flush(); // Delete the file as its already in stream and available for user to download/save/view. FileInfo file = new FileInfo(FilePath); if (file.Exists) { file.Delete(); } } catch (Exception ex) { ErrorLabel.Text = ex.ToString(); ErrorLabel.Visible = true; } }
public bool InsertTable2(System.Data.DataTable dt, bool haveBorder, List <double> widthLst) { Aspose.Words.Tables.Table table = _WordBuilder.StartTable();//开始画Table ParagraphAlignment paragraphAlignmentValue = _WordBuilder.ParagraphFormat.Alignment; _WordBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Center; //添加Word表格 for (int row = 0; row < dt.Rows.Count; row++) { _WordBuilder.RowFormat.Height = 50; //第一列 _WordBuilder.InsertCell(); _WordBuilder.Font.Size = 10.0; _WordBuilder.Font.Name = "宋体"; _WordBuilder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center; //垂直居中对齐 _WordBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Center; //水平居中对齐 _WordBuilder.CellFormat.Width = widthLst[0]; _WordBuilder.RowFormat.Height = 10; _WordBuilder.CellFormat.PreferredWidth = PreferredWidth.Auto;// Aspose.Words.Tables.PreferredWidth.FromPoints(70); if (haveBorder == true) { //设置外框样式 _WordBuilder.CellFormat.Borders.LineStyle = LineStyle.Single; //样式设置结束 } _WordBuilder.Write(dt.Rows[row][0].ToString()); //第二列 _WordBuilder.InsertCell(); _WordBuilder.Font.Size = 10.0; _WordBuilder.Font.Name = "宋体"; _WordBuilder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center; //垂直居中对齐 _WordBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Left; //水平居中对齐 _WordBuilder.CellFormat.Width = widthLst[1]; _WordBuilder.CellFormat.PreferredWidth = PreferredWidth.Auto; // Aspose.Words.Tables.PreferredWidth.FromPoints(100); if (haveBorder == true) { //设置外框样式 _WordBuilder.CellFormat.Borders.LineStyle = LineStyle.Single; //样式设置结束 } _WordBuilder.Write(dt.Rows[row][1].ToString()); //第三列 _WordBuilder.InsertCell(); _WordBuilder.Font.Size = 10.0; _WordBuilder.Font.Name = "宋体"; _WordBuilder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center; //垂直居中对齐 _WordBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Left; //水平居中对齐 _WordBuilder.CellFormat.Width = widthLst[2]; _WordBuilder.CellFormat.PreferredWidth = PreferredWidth.Auto; //Aspose.Words.Tables.PreferredWidth.FromPoints(100); if (haveBorder == true) { //设置外框样式 _WordBuilder.CellFormat.Borders.LineStyle = LineStyle.Single; //样式设置结束 } _WordBuilder.Write(dt.Rows[row][2].ToString()); //第四列 _WordBuilder.InsertCell(); _WordBuilder.Font.Size = 10.0; _WordBuilder.Font.Name = "宋体"; _WordBuilder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center; //垂直居中对齐 _WordBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Center; //水平居中对齐 _WordBuilder.CellFormat.Width = widthLst[3]; _WordBuilder.CellFormat.PreferredWidth = PreferredWidth.Auto; // Aspose.Words.Tables.PreferredWidth.FromPoints(100); if (haveBorder == true) { //设置外框样式 _WordBuilder.CellFormat.Borders.LineStyle = LineStyle.Single; //样式设置结束 } _WordBuilder.Write(dt.Rows[row][3].ToString()); /*/第五列图片 * _WordBuilder.InsertCell(); * _WordBuilder.Font.Size = 10.0; * _WordBuilder.Font.Name = "宋体"; * _WordBuilder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐 * _WordBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐 * _WordBuilder.CellFormat.Width = widthLst[4]; * _WordBuilder.CellFormat.PreferredWidth = Aspose.Words.Tables.PreferredWidth.FromPoints(100); * if (haveBorder == true) * { * //设置外框样式 * _WordBuilder.CellFormat.Borders.LineStyle = LineStyle.Single; * //样式设置结束 * } * FileInfo file=new FileInfo(dt.Rows[row][4].ToString()); * if (file.Exists) * { * _WordBuilder.InsertImage(dt.Rows[row][4].ToString()); * }*/ _WordBuilder.EndRow(); } _WordBuilder.EndTable(); _WordBuilder.ParagraphFormat.Alignment = paragraphAlignmentValue; table.Alignment = Aspose.Words.Tables.TableAlignment.Center; table.AllowAutoFit = true; table.AutoFit(Aspose.Words.Tables.AutoFitBehavior.FixedColumnWidths); return(true); }
public HttpResponseMessage ClientPartReport(string UserID, string ReportName) { HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK); string fileNames = "ClientRecords"; string strLiveURL = System.Configuration.ConfigurationManager.AppSettings["LiveSiteURL"].ToString(); string DocumentPath = System.Configuration.ConfigurationManager.AppSettings["ClientReportDocumentPath"].ToString(); try { // TableThirty // TableSixty // TableNinty // TableNintyPlus SqlParameter[] param = { new SqlParameter("UserID", (object)UserID ?? (object)DBNull.Value) }; List <ClientPartReport> result = new List <ClientPartReport>(); if (ReportName.ToLower() == "authorization") { result = _repository.ExecuteSQL <ClientPartReport>("ClientPartReportAuthorization", param).ToList <ClientPartReport>(); fileNames += " - Authorization Needed"; } else if (ReportName.ToLower() == "newrecords") { result = _repository.ExecuteSQL <ClientPartReport>("ClientPartReportNewRecords", param).ToList <ClientPartReport>(); fileNames += " - New Records"; } else if (ReportName.ToLower() == "inprogress") { result = _repository.ExecuteSQL <ClientPartReport>("ClientPartReportInProgress", param).ToList <ClientPartReport>(); fileNames += " - In Progress"; } else { result = _repository.ExecuteSQL <ClientPartReport>("ClientPartReportMoreInformation", param).ToList <ClientPartReport>(); fileNames += " - More Information"; } if (result.Count > 0) { // response.Success = true; } List <ClientPartReport> resultThirty; List <ClientPartReport> resultSixty; List <ClientPartReport> resultNinty; List <ClientPartReport> resultNintyPlus; resultThirty = result.Where(x => x.OrderDays <= 30).OrderByDescending(x => x.OrderDays).ToList <ClientPartReport>(); resultSixty = result.Where(x => x.OrderDays > 30 && x.OrderDays <= 60).OrderByDescending(x => x.OrderDays).ToList <ClientPartReport>(); resultNinty = result.Where(x => x.OrderDays > 60 && x.OrderDays <= 90).OrderByDescending(x => x.OrderDays).ToList <ClientPartReport>(); resultNintyPlus = result.Where(x => x.OrderDays > 90).OrderBy(x => x.OrderNo).OrderByDescending(x => x.OrderDays).ToList <ClientPartReport>(); string[] ColName = { "Part No", "Day", "Records Of", "Location", "Client Matter", "Claim No", "Note" }; //Get dummy datasource (data table with random number of rows) Aspose.Words.License license = new Aspose.Words.License(); license.SetLicense("Aspose.Words.lic"); //Open or create document and create DocumentBuilder Aspose.Words.Document doc = new Aspose.Words.Document(DocumentPath); //Document builder will be needed to build table in the document Aspose.Words.DocumentBuilder builder = new DocumentBuilder(doc); //move documentBuilder cursor to the bookmark inside table builder.MoveToBookmark("TableThirty"); Aspose.Words.Tables.Table myTable = (Aspose.Words.Tables.Table)builder.CurrentNode.GetAncestor(NodeType.Table); BuildHeaderRow(ColName, myTable, builder); InsertData(resultThirty, myTable, builder); // builder.InsertBreak(BreakType.SectionBreakNewPage); builder.MoveToBookmark("TableSixty"); myTable = (Aspose.Words.Tables.Table)builder.CurrentNode.GetAncestor(NodeType.Table); BuildHeaderRow(ColName, myTable, builder); InsertData(resultSixty, myTable, builder); // builder.InsertBreak(BreakType.SectionBreakNewPage); builder.MoveToBookmark("TableNinty"); myTable = (Aspose.Words.Tables.Table)builder.CurrentNode.GetAncestor(NodeType.Table); BuildHeaderRow(ColName, myTable, builder); InsertData(resultNinty, myTable, builder); builder.MoveToBookmark("TableNintyPlus"); myTable = (Aspose.Words.Tables.Table)builder.CurrentNode.GetAncestor(NodeType.Table); BuildHeaderRow(ColName, myTable, builder); InsertData(resultNintyPlus, myTable, builder); MemoryStream ms = new MemoryStream(); ms.Flush(); doc.Save(ms, Aspose.Words.SaveFormat.Pdf); response.Content = new ByteArrayContent(ms.ToArray()); response.Content.Headers.Clear(); response.Content.Headers.TryAddWithoutValidation("Content-Disposition", "attachment; filename=" + fileNames + ".pdf"); response.Content.Headers.Add("Content-Length", ms.ToArray().Length.ToString()); response.Content.Headers.ContentType = new MediaTypeHeaderValue(MimeMapping.GetMimeMapping("application/pdf")); return(response); } catch (Exception ex) { // response.Message.Add(ex.Message); } return(response); }