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