示例#1
0
 /// <summary>
 /// 初始化
 /// </summary>
 /// <param name="labelName">标签名称</param>
 /// <param name="dataSource">数据源</param>
 /// <param name="filterOperation">过滤操作符</param>
 /// <param name="filterValue">过滤使用值</param>
 /// <param name="fillType">填充方式</param>
 /// <param name="from">取数据源的第几条开始</param>
 /// <param name="to">取数据源的第几条结束</param>
 /// <param name="columns">列集合</param>
 public TableLabel(string labelName, DataSource dataSource, string filterOperation, string filterValue, TableFillType fillType, int from, int to, List <ColumnInfo> columns)
 {
     this.LabelName       = labelName;
     this.dataSource      = dataSource;
     this.filterOperation = filterOperation;
     this.filterValue     = filterValue;
     this.fillType        = fillType;
     this.from            = from;
     this.to      = to;
     this.columns = columns;
 }
示例#2
0
        /// <summary>
        /// 插入表格
        /// </summary>
        /// <param name="bookmark">标签名称</param>
        /// <param name="tableData">表格数据</param>
        /// <param name="tableFillType">填充方式</param>
        public void InsertTable(string bookmark, string[,] tableData, TableFillType tableFillType)
        {
            if (this.doc == null || tableData == null)
            {
                if (this.doc != null)
                {
                    this.ReplaceText(bookmark, string.Empty);
                }

                return;
            }

            Bookmark mark = this.doc.Range.Bookmarks[bookmark];

            if (mark != null && tableData != null && tableData.Length > 0)
            {
                mark.Text = string.Empty;
                var builder = new DocumentBuilder(this.doc);

                switch (tableFillType)
                {
                case TableFillType.AutoColumn:
                    this.AutoColumn(mark, tableData, builder);
                    break;

                case TableFillType.AutoRow:
                    this.AutoRow(mark, tableData, builder);
                    break;

                case TableFillType.OnlyFillByColumn:
                    this.OnlyFillByColumn(mark, tableData, builder);
                    break;

                case TableFillType.OnlyFillByRow:
                    this.OnlyFillByRow(mark, tableData, builder);
                    break;
                }

                // 文件另存到桌面
                // string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\InsertTable.doc";
                // _doc.Save(path);
            }
        }
示例#3
0
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="labelName">标签名称</param>
        /// <param name="labelConfig">配置信息</param>
        /// <param name="docTemplateType">模板类型fieldName</param>
        public TableLabel(string labelName, JToken labelConfig, DocTemplateType docTemplateType)
        {
            JObject    config         = (JObject)labelConfig["Config"];
            string     dataSourceName = string.Empty;
            string     fieldName      = string.Empty;
            FormatInfo formatInfo     = null;
            string     formatString   = string.Empty;
            string     formatType     = string.Empty;

            this.LabelName       = labelName;
            dataSourceName       = config["DataSourceName"].Value <string>();
            this.dataSource      = docTemplateType.DataSourceList.FirstOrDefault(t => t.DataSourceName == dataSourceName);
            this.filterFieldName = config["FilterFieldName"].Value <string>();
            this.filterOperation = config["FilterOperation"].Value <string>();
            this.filterValue     = config["FilterValue"].Value <string>();
            this.fillType        = (TableFillType)Enum.Parse(typeof(TableFillType), config["FillType"].Value <string>());
            if (config["From"] != null && !string.IsNullOrEmpty(config["From"].ToString()))
            {
                this.from = config["From"].Value <int>();
                this.from--;
            }

            if (config["From"] != null && !string.IsNullOrEmpty(config["To"].ToString()))
            {
                this.to = config["To"].Value <int>();
            }

            this.columns = new List <ColumnInfo>();
            JArray cols        = (JArray)config["ColumnInfo"];
            int    columnIndex = 0;

            foreach (var col in cols)
            {
                fieldName   = col["FieldName"].Value <string>();
                columnIndex = col["ColumnIndex"].Value <int>();
                formatInfo  = new FormatInfo(col["FormatInfo"], docTemplateType);
                this.columns.Add(new ColumnInfo(fieldName, columnIndex, formatInfo));
            }
        }