Пример #1
0
        public void LoadFromDataView(CellAddress beginAddress, ExcelTableStyles tableStyle, DataView dv, CreatingDataCellAction <DataRowView> creatingDataCellAction)
        {
            dv.NullCheck <ArgumentNullException>("数据源不能为空!");

            TableDescription tbDesp = SpreadSheetAttributeHelper.GetTableDescription(dv.Table);

            tbDesp.BeginAddress = beginAddress;

            if (tableStyle == ExcelTableStyles.None && tbDesp.TableName.IsNullOrEmpty())
            {
                this.LoadFromDataView(tbDesp, dv, creatingDataCellAction);
            }
            else
            {
                tbDesp.TableStyle = tableStyle;
                Table table;

                if (this.Tables.TryGetTable(tbDesp.TableName, out table) == false)
                {
                    table = new Table(this, tbDesp);
                    this.Tables.Add(table);
                }

                table.FillData(dv, tbDesp, creatingDataCellAction);
            }
        }
Пример #2
0
        /// <summary>
        /// 创建文档,并将数填充到ExcelTable中
        /// </summary>
        /// <param name="worksheetName">工作表名称</param>
        /// <param name="beginAddress">开始单元格</param>
        /// <param name="tableName">ExcelTable名称</param>
        /// <param name="dvData">数据源</param>
        /// <param name="tableStyle">ExcelTable 样式</param>
        /// <param name="isPrintHeaders"></param>
        /// <returns></returns>
        public static byte[] CreateDocumentAndTable(string worksheetName, string beginAddress, string tableName, System.Data.DataView dvData, ExcelTableStyles tableStyle)
        {
            WorkBook  workbook  = WorkBook.CreateNew();
            WorkSheet worksheet = workbook.Sheets["sheet1"];

            if (worksheetName.IsNotEmpty())
            {
                worksheet.Name = worksheetName;
            }

            dvData.Table.TableName = tableName;
            worksheet.LoadFromDataView(CellAddress.Parse(beginAddress), tableStyle, dvData, null);
            //worksheet.LoadFromDataView(beginAddress, dvData, tableName, tableStyle);

            return(workbook.SaveAsBytes());
        }
Пример #3
0
        /// <summary>
        /// 创建文档,并将数填充到ExcelTable中
        /// </summary>
        /// <param name="worksheetName">工作表名称</param>
        /// <param name="beginAddress">开始单元格</param>
        /// <param name="tableName">ExcelTable名称</param>
        /// <param name="dvData">数据源</param>
        /// <param name="tableStyle">ExcelTable 样式</param>
        /// <param name="isPrintHeaders"></param>
        /// <returns></returns>
        public static byte[] CreateDocumentAndTable(string worksheetName, string beginAddress, string tableName, System.Data.DataView dvData, ExcelTableStyles tableStyle)
        {
            WorkBook workbook = WorkBook.CreateNew();
            WorkSheet worksheet = workbook.Sheets["sheet1"];
            if (worksheetName.IsNotEmpty())
                worksheet.Name = worksheetName;

            dvData.Table.TableName = tableName;
            worksheet.LoadFromDataView(CellAddress.Parse(beginAddress), tableStyle, dvData, null);
            //worksheet.LoadFromDataView(beginAddress, dvData, tableName, tableStyle);

            return workbook.SaveAsBytes();
        }