网站首页 > 博客文章 正文
表格的基本方法、操作在教材案例、C#的元数据代码中写得很清晰了,但在实际动手操作时,光理解理论是不够的,还需要不断实践和熟悉。这两天把表格的这些操作进行了梳理,可以满足后期自动生成材料表、从EXCEL复制数据的需求了。把成果写在这里,分享给读者诸君。
打开数据库、提交保存相关的代码不再重复,可以参考直线章节的的内容。
1,建立表格对象
Table table = new Table();
2,设置表格行、列数量
table.SetSize(5, 10); // 5行10列
3,设置行高
table.SetRowHeight(10); // 设置行高为10个单位
table.Rows[1].Height = 20;//设置第2行高为20个单位
table.Height = 100;//设置总行高为100个单位
如果设置了总行高,程序自动按比例均分单行行高。
4,设置列宽
table.SetColumnWidth(50); // 设置列宽为50个单位
table.Columns[0].Width = 20; // 设置第1列宽度为20个单位
table.Width = 300;//设置总宽度为300个单位;
5,设置插入点
table.Position = new Point3d(0, 0, 0); // 设置插入点为原点
6,设置单元格显示内容
table.Cells[0, 0].TextString = "这是标题行";
//设置第一行的内容,默认第1行为标题行,是合并的单元格
7,左对齐、正中对齐、右对齐
table.Cells[1, 0].Alignment = CellAlignment.MiddleLeft;
table.Cells[1, 0].TextString = "左对齐";
table.Cells[1, 1].Alignment = CellAlignment.MiddleCenter;
table.Cells[1, 1].TextString = "正中对齐";
table.Cells[1, 2].Alignment = CellAlignment.MiddleRight;
table.Cells[1, 2].TextString = "右对齐";
8,清除单元格内容
table.Cells[1, 1].Contents.Clear();
9,获取指定单元格的ID
ObjectId objectId = table.Cells[1, 1].FieldId;
10,合并单元格
table.MergeCells(CellRange.Create(table, 1, 1, 1, 2));
//四个参数分别为int topRow, int leftColumn, int bottomRow, int rightColumn,本式中为合并第2行第2、3列的单元格
11,取消合并单元格
table.UnmergeCells(CellRange.Create(table, 1, 1, 1, 2));
12,设置单元格字体样式
TextStyleTable st = (TextStyleTable)acCurDb.TextStyleTableId.GetObject(OpenMode.ForWrite);
ObjectId textObjectId = st["STANDARD"];=右侧输入字体样式的ID号,或在【】内的字符串输入文字样式名。
table.Cells[1, 1].TextStyleId = textObjectId;
13,设置单元格字号
table.Cells[1, 1].TextHeight = 350;
14,将单元格内容设置为块参照
14.1,自适应比例
BlockTable acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable;
table.Cells[2, 5].BlockTableRecordId = acBlkTbl["SXJ1"];
//=右侧输入块参照的ID号,或者在【】内输入块参照的名字。
14.2,设置为固定比例
如果不设置比例值,将是自动比例,块参照会充满单元格,观感较差。因此应根据块参照的尺寸,将其修改为固定比例。
BlockTable acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable;
table.Cells[2, 4].BlockTableRecordId = acBlkTbl["SXJ1"];
CellContent newCellContent;
newCellContent = table.Cells[2, 4].Contents[0];
newCellContent.IsAutoScale = false;//取消自动缩放
newCellContent.Scale = 1.2;//缩放倍数
table.Cells[2, 4].Alignment = CellAlignment.MiddleCenter;//正中对齐
两种方式的差别,显然设置为固定比例更美观。
15,在表格中输入公式
Cell cell;
cell = table.Cells[3, 0];//A4
cell.Contents.Add();
newCellContent = cell.Contents[0];
newCellContent.Formula = "=A3*A2*A3";//直接在单元格内输入公式
cell.TextHeight = 350;//设置字号
cell.Alignment = CellAlignment.MiddleCenter;//居中对齐
输入完成后,在CAD中生成表格,然后在A3和A2中输入数值,在A4中自动运行输入结果
友情提醒:添加完表格,记得提交保存acTrans.Commit();。
- 上一篇: C 异常处理(c加加异常处理)
- 下一篇: 125.C# ArrayList 类(c#是什么语言)
猜你喜欢
- 2024-10-15 Python 速度慢,试试这个方法提高 1000 倍
- 2024-10-15 C# 文件操作浅析(c#代码文件)
- 2024-10-15 从零开始自学C#基础的第十五天——数组的基本用法
- 2024-10-15 浅谈C#取消令牌CancellationTokenSource
- 2024-10-15 总结了才知道,原来channel有这么多用法
- 2024-10-15 面向对象(8-15)异常类-C#编程零基础到入门学习
- 2024-10-15 .NET 6 中 LINQ 的改进(.net 调优)
- 2024-10-15 Log4net配置文件 C#(c# log4j)
- 2024-10-15 C# BIN文件读取以及CRC校验(匹配STM32F103)
- 2024-10-15 C#如何对String中的Contact/Join方法进行优化的
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- messagesource (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)