zoukankan      html  css  js  c++  java
  • ExportGrid Aspose.Cells.dll

    using Aspose.Cells;
    using Aspose.Words;
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace WebApplication16
    {
    
        public partial class WebForm1 : System.Web.UI.Page
        {
    
    
            public void ExportWord()
            {
                string filePath = Server.MapPath("~/Template.doc");
                string filePath1 = Server.MapPath("~/Template1.doc");
                //预先生成数据
                List<Student> studentData = new List<Student>();
                for (int i = 0; i < 50; i++)
                {
                    studentData.Add(new Student()
                    {
                        name = "学生" + i.ToString("D3"),
                        schoolName = "某某中学",
                        num = i,
                        score = i
                    });
                }
                //加载word模板。
                Aspose.Words.Document doc = null;
                try
                {
                    doc = new Aspose.Words.Document();
                }
                catch (Exception ex)
                {
    
    
                }
                Aspose.Words.DocumentBuilder docWriter = new Aspose.Words.DocumentBuilder(doc);
                docWriter.StartTable();
                double[] colWidth = new double[] { 45, 60, 33, 55 };
                string[] colName = new string[] { "编号", "姓名", "分数", "学校" };
                int pageSize = 0;
                for (int i = 0, j = studentData.Count; i < j; i++)
                {
                    if (i == 47)
                    {
    
                    }
                    if (pageSize== 0)
                    {
                        //word页刚开始,一个表格的开始,要插入一个表头
                        docWriter.InsertBreak(Aspose.Words.BreakType.ParagraphBreak);
                        //docWriter.StartTable();
                        AsposeCreateCell(docWriter, colWidth[0], colName[0]);
                        AsposeCreateCell(docWriter, colWidth[1], colName[1]);
                        AsposeCreateCell(docWriter, colWidth[2], colName[2]);
                        AsposeCreateCell(docWriter, colWidth[3], colName[3]);
                        docWriter.EndRow();
                        //docWriter.EndTable();
                    }
                    //else if (pageSize == 30)//经过测算,每页word中可以放置30行
                    //{
                    //    //结束第一个表格,插入分栏符号,并开始另一个表格
                    //    docWriter.EndTable();
                    //    docWriter.InsertBreak(Aspose.Words.BreakType.ColumnBreak);
                    //    docWriter.InsertBreak(Aspose.Words.BreakType.ParagraphBreak);
                    //    docWriter.StartTable();
                    //    AsposeCreateCell(docWriter, colWidth[0], colName[0]);
                    //    AsposeCreateCell(docWriter, colWidth[1], colName[1]);
                    //    AsposeCreateCell(docWriter, colWidth[2], colName[2]);
                    //    AsposeCreateCell(docWriter, colWidth[3], colName[3]);
                    //    docWriter.EndRow();
                    //}
                    //else if (pageSize == 60)//word分栏为2栏,那么一页word可以放60行数据
                    //{
                    //    //一页word完毕,关闭表格,并绘制下一页的表头。
                    //    docWriter.EndTable();
                    //    docWriter.InsertBreak(Aspose.Words.BreakType.PageBreak);
                    //    docWriter.InsertBreak(Aspose.Words.BreakType.ParagraphBreak);
                    //    docWriter.StartTable();
                    //    AsposeCreateCell(docWriter, colWidth[0], colName[0]);
                    //    AsposeCreateCell(docWriter, colWidth[1], colName[1]);
                    //    AsposeCreateCell(docWriter, colWidth[2], colName[2]);
                    //    AsposeCreateCell(docWriter, colWidth[3], colName[3]);
                    //    docWriter.EndRow();
                    //    pageSize = 0;
                    //}
                    pageSize++;
                    //创建内容
                    AsposeCreateCell(docWriter, colWidth[0], studentData[i].num.ToString());
                    AsposeCreateCell(docWriter, colWidth[1], studentData[i].name);
                    AsposeCreateCell(docWriter, colWidth[2], studentData[i].score.ToString());
                    AsposeCreateCell(docWriter, colWidth[3], studentData[i].schoolName+"_"+i);
                    docWriter.EndRow();
                }//end for
                docWriter.EndTable();
                //保存文件
                doc.Save(filePath1, Aspose.Words.SaveFormat.Doc);
    
    
            }
            public void AsposeCreateCell(Aspose.Words.DocumentBuilder builder, double width, string text)
            {
    
                builder.InsertCell();
                builder.CellFormat.Borders.LineStyle = Aspose.Words.LineStyle.Single;
                builder.CellFormat.Borders.Color = System.Drawing.Color.Black;
                builder.CellFormat.Width = width;//单元格的宽度
                builder.CellFormat.LeftPadding = 3;//单元格的左内边距
                builder.CellFormat.RightPadding = 3;//单元格的右内边距
                builder.RowFormat.Height = 20;//行高
                builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
                builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
                builder.ParagraphFormat.Alignment = Aspose.Words.ParagraphAlignment.Center;//水平居中对齐
                builder.Write(text);
            }
            protected virtual void ExportGrid(string[] Columns, string title, System.Data.DataTable table, ArrayList ignorColList, bool showHeader)
            {
    
    
    
    
                Workbook workbook = new Workbook(); //工作簿
                Worksheet sheet = workbook.Worksheets[0]; //工作表
                sheet.AutoFitColumns();
                Cells cells = sheet.Cells;//单元格
                Aspose.Cells.Style styleTitle = workbook.Styles[workbook.Styles.Add()];//新增样式
                styleTitle.HorizontalAlignment = TextAlignmentType.Center;//文字居中
                styleTitle.Font.Name = "宋体";//文字字体
                styleTitle.Font.Size = 14;//文字大小
                styleTitle.Font.IsBold = false;//粗体
                //样式2
                Aspose.Cells.Style style2 = workbook.Styles[workbook.Styles.Add()];//新增样式
                style2.HorizontalAlignment = TextAlignmentType.Center;//文字居中
                style2.Font.Name = "宋体";//文字字体
                style2.Font.Size = 10;//文字大小
                style2.Font.IsBold = false;//粗体
                style2.IsTextWrapped = true;//单元格内容自动换行
                style2.Borders[Aspose.Cells.BorderType.LeftBorder].LineStyle = CellBorderType.Thin;
                style2.Borders[Aspose.Cells.BorderType.RightBorder].LineStyle = CellBorderType.Thin;
                style2.Borders[Aspose.Cells.BorderType.TopBorder].LineStyle = CellBorderType.Thin;
                style2.Borders[Aspose.Cells.BorderType.BottomBorder].LineStyle = CellBorderType.Thin;
                Aspose.Cells.Style style3 = workbook.Styles[workbook.Styles.Add()];//新增样式
                style3.HorizontalAlignment = TextAlignmentType.Center;//文字居中
                style3.Font.Name = "宋体";//文字字体
                style3.Font.Size = 10;//文字大小
                style3.Borders[Aspose.Cells.BorderType.LeftBorder].LineStyle = CellBorderType.Thin;
                style3.Borders[Aspose.Cells.BorderType.RightBorder].LineStyle = CellBorderType.Thin;
                style3.Borders[Aspose.Cells.BorderType.TopBorder].LineStyle = CellBorderType.Thin;
                style3.Borders[Aspose.Cells.BorderType.BottomBorder].LineStyle = CellBorderType.Thin;
                if (!string.IsNullOrEmpty(title))
                {
                    int i = Columns.Length;
                    if (ignorColList != null)
                    {
                        i = i - ignorColList.Count;
                    }
                    cells.Merge(0, 0, 1, i);//合并单元格
                    cells[0, 0].PutValue(title);//填写内容
                    cells[0, 0].SetStyle(styleTitle);
                }
                int start = string.IsNullOrEmpty(title) ? 0 : 1;
                int j = 0;
                if (showHeader)
                {
                    for (var i = 0; i < Columns.Length; i++)
                    {
                        var c = Columns[i];
                        if (ignorColList != null && ignorColList.Contains(c))
                        {
                            continue;
                        }
                        cells[start, j].PutValue(c);
                        cells[start, j].SetStyle(style2);
                        j++;
                    }
                }
                for (var q = 0; q < table.Rows.Count; q++)
                {
                    j = 0;
                    var row = table.Rows[q];
                    for (var i = 0; i < Columns.Length; i++)
                    {
                        var c = Columns[i];
                        if (ignorColList != null && ignorColList.Contains(c))
                        {
                            continue;
                        }
                        cells[start + 1 + q, j].PutValue(row[c]);
                        cells[start + 1 + q, j].SetStyle(style3);
                        cells.SetRowHeight(start + 1 + q, 25);
                        j++;
                    }
                }
    
                workbook.Save(string.Format("report.xls"), Aspose.Cells.SaveType.OpenInExcel, Aspose.Cells.FileFormatType.Excel2003, Response);
                Response.Flush();
                Response.End();
            }
            protected void Page_Load(object sender, EventArgs e)
            {
                System.Data.DataTable table = new System.Data.DataTable();
                table.Columns.Add("id2", typeof(string));
                table.Columns.Add("name2", typeof(string));
    
                for (int i = 0; i < 3; i++)
                {
                    System.Data.DataRow dr = table.NewRow();
                    dr["id2"] = "id2_" + i;
                    dr["name2"] = "name2_" + i;
                    table.Rows.Add(dr);
                }
    
                string[] columns = { "id2", "name2" };
    
                ExportWord();
                //ExportGrid(columns, "柯相彬表格",table,null, true);
                Response.Write("ni mei de");
            }
        }
    }
  • 相关阅读:
    javascript得知
    一旦配置oracle em经验
    windows 下一个mysql password忘记改变
    彩色图像--图像切 色彩空间切割
    Delphi 6 Web Services初步评估之三(转)
    Delphi 用Web App Debugger简单调试ISAPI 转
    Delphi socket() 函数的应用
    用Delphi实现WinSocket高级应用
    delphi编写winsocket的流程
    Delphi使用NativeXml访问XML文件
  • 原文地址:https://www.cnblogs.com/kexb/p/9371603.html
Copyright © 2011-2022 走看看