DevExpress RichEditControl 插入表格和数据(附源码)
DevExpress RichEditControl 动态插入表格及数据demo源代码,简单例子,希望对你们有帮助
参考:https://www.cnblogs.com/wuhuacong/archive/2013/01/27/2878368.html
参考:https://download.csdn.net/detail/u012097590/9751938
using System; using System.Data; using System.Drawing; using System.Windows.Forms; using System.Collections.Generic; using DevExpress.XtraRichEdit.Utils; using DevExpress.XtraRichEdit.API.Native; using DevExpress.Office.Utils; namespace RichEditDisplayDataTable { public partial class Form1 : DevExpress.XtraBars.Ribbon.RibbonForm { public Form1() { InitializeComponent(); } private void AppendDataTable(Document document, DataTable dataTable) { int dataTableRows = dataTable.Rows.Count; int dataTableColumns = dataTable.Columns.Count; List<string> columnsToDisplay = new List<string>(); for (int i = 0; i < dataTableColumns; i++) { string name = dataTable.Columns[i].ColumnName; // Skip PrimaryKey columns if (!name.ToUpper().EndsWith("ID")) columnsToDisplay.Add(name); } document.BeginUpdate(); Table table = document.Tables.Create(document.Range.End, dataTableRows + 1, columnsToDisplay.Count, AutoFitBehaviorType.AutoFitToWindow); SetTableStyle(table); //段落参数设置 ParagraphProperties pp = document.BeginUpdateParagraphs(table.FirstRow.Range); pp.Alignment = ParagraphAlignment.Center; document.EndUpdateParagraphs(pp); //字体设置 CharacterProperties cp = document.BeginUpdateCharacters(table.FirstRow.Range); cp.FontName = "Courier New"; cp.ForeColor = Color.White; document.EndUpdateCharacters(cp); DrawHeader(document, table, columnsToDisplay); // 填充表格内容 table.BeginUpdate();//开启,以提高绘制效率 table.ForEachCell(delegate (TableCell cell, int rowIndex, int cellIndex) { if (rowIndex > 0) { document.InsertText(cell.Range.Start, dataTable.Rows[rowIndex - 1][columnsToDisplay[cellIndex]].ToString()); } }); table.EndUpdate(); document.EndUpdate(); } /// <summary> /// 绘制表头 /// </summary> /// <param name="document"></param> /// <param name="table"></param> /// <param name="columnsToDisplay"></param> void DrawHeader(Document document, Table table, List<string> columnsToDisplay) { for (int i = 0; i < table.FirstRow.Cells.Count; i++) { table.FirstRow.Cells[i].BackgroundColor = Color.DarkBlue; table.FirstRow.Cells[i].VerticalAlignment = TableCellVerticalAlignment.Center; } // 填充表头 for (int i = 0; i < columnsToDisplay.Count; i++) { document.InsertText(table[0, i].Range.Start, columnsToDisplay[i]); } } /// <summary> /// 设置表格属性 /// </summary> /// <param name="table"></param> void SetTableStyle(Table table) { table.TableLayout = TableLayoutType.Fixed; table.Borders.InsideHorizontalBorder.LineColor = Color.DarkBlue; table.Borders.InsideVerticalBorder.LineColor = Color.DarkBlue; table.Borders.InsideHorizontalBorder.LineThickness = 0.5f; table.Borders.InsideHorizontalBorder.LineStyle = TableBorderLineStyle.Single; table.Borders.InsideVerticalBorder.LineThickness = 0.5f; table.Borders.InsideVerticalBorder.LineStyle = TableBorderLineStyle.Single; table.LeftPadding = Units.InchesToDocumentsF(0.01f); table.FirstRow.Height = Units.InchesToDocumentsF(0.5f); table.FirstRow.HeightType = HeightType.Exact; } private void barButtonItem1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { //多线程测试 for (int i = 0; i < 5; i++) { System.Threading.Tasks.Task.Factory.StartNew(() => { BeginInvoke(new Action(() => { AppendDataTable(richEditControl1.Document, ProductsTable.CreateData()); })); }); } } } }
点击阅读全文
《DevExpress RichEditControl 插入表格和数据(附源码)》.doc
将本文下载保存,方便收藏和打印
导出文档