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");
        }
    }
}

 

转载于:https://www.cnblogs.com/kexb/p/9371603.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值