Beispiel #1
0
        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
        }
Beispiel #2
0
        /// <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++;
            }
        }
Beispiel #3
0
        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();
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        /// <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);
            }
        }
Beispiel #8
0
        /// <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);
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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;
                            }
                        }
                    }
                }
            }
        }
Beispiel #11
0
 /// <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)
     {
     }
 }
Beispiel #12
0
        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();
            }
        }
Beispiel #13
0
        /// <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();
        }
Beispiel #14
0
        /// <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();
        }
Beispiel #15
0
        /// <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;
            }
        }
Beispiel #17
0
        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);
        }
Beispiel #18
0
        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);
        }