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
将本文下载保存,方便收藏和打印
导出文档
