没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|行业资讯|编辑:胡涛|2024-07-15 10:34:01.253|阅读 52 次
概述:在本文中,我们将向您展示如何通过检测制表位并将其转换为包含位置的表格单元格,将纯文本表格转换为表格。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
文档布局中的一项典型任务是将使用制表位创建的纯文本表格转换为完全格式化的表格。在本文中,我们将向您展示如何通过检测制表位并将其转换为包含位置的表格单元格,将纯文本表格转换为表格。
TX Text Control 是一款功能类似于 MS Word 的文字处理控件,包括文档创建、编辑、打印、邮件合并、格式转换、拆分合并、导入导出、批量生成等功能。广泛应用于企业文档管理,网站内容发布,电子病历中病案模板创建、病历书写、修改历史、连续打印、病案归档等功能的实现。
让我们从 TX Text Control 中的一个简单表格开始:
要转换表格,我们需要遍历所有行和列,并创建包含由制表位分隔的每个表格单元格的文本的行字符串。以下代码显示如何将表格转换为带有制表位的纯文本表格:
private void ConvertTableToText(TXTextControl.Table table, TXTextControl.TextControl textControl) { if (table.NestedTables.Count >= 1) { // throw an exception throw new Exception("Nested tables are not supported."); } // Create a new StringBuilder object StringBuilder sb = new StringBuilder(); var numRows = table.Rows.Count; var numCols = table.Columns.Count; int[] tabStopLocations = new int[14]; // Loop through all rows for (int i = 1; i <= numRows; i++) { var offset = 0; // Loop through all columns for (int j = 1; j <= numCols; j++) { var position = table.Columns[j].Position; if (j == 1) { if (position > 0) { tabStopLocations[j - 1] = position; } else { offset = 1; } } else { tabStopLocations[j - 1 - offset] = position; } if (j > 1 || (j == 1 && position > 0)) { sb.Append("\t"); } sb.Append(table.Cells[i, j].Text); } // Append a new line character to the StringBuilder object sb.Append("\r\n"); } // Remove table table.Select(); textControl1.Tables.Remove(); textControl1.Selection.ParagraphFormat.TabPositions = tabStopLocations; // Set the text of the TextControl textControl1.Selection.Text = sb.ToString(); }
上述代码用于StringBuilder创建纯文本表格。每个表格行由一行字符串表示,其中包含由制表位分隔的每个表格单元格的文本。表格列的Position 属性用于获取表格列在表格中的位置。此位置用于确定纯文本表格中的制表位位置。
以下动画截图显示了转换的结果:
在下一个屏幕截图中,您可以看到如何处理不同列大小并将其转换为纯文本表:
现在,让我们将纯文本表转换回 TX Text Control 中的表。以下代码显示如何将带有制表位的纯文本表转换为完全格式化的表:
private void ConvertTextToTable(TXTextControl.TextControl textControl) { if (textControl1.Selection.Length == 0) { throw new Exception("No text selected."); } int[] storedTabPositions = textControl1.Selection.ParagraphFormat.TabPositions; int startPosition = textControl1.Selection.Start; int endPosition = startPosition + textControl1.Selection.Length; var startLine = textControl1.Lines.GetItem(startPosition); var endLine = textControl1.Lines.GetItem(endPosition - 1); List<string> lineText = new List<string>(); // Loop through all lines and add the text of each line to the list for (int i = startLine.Number; i <= endLine.Number; i++) { var line = textControl1.Lines[i]; lineText.Add(line.Text); } // Calculate the number of rows and columns int numRows = endLine.Number - startLine.Number + 1; int numCols = lineText[0].Split('\t').Length; textControl1.Selection.Text = string.Empty; // Create a new table var tableInserted = textControl1.Tables.Add(numRows, numCols); // Set input position to the first cell textControl1.Selection.Start -= 1; // Loop through all rows and columns to populate the table for (int i = 1; i <= numRows; i++) { string[] splitText = lineText[i - 1].Split('\t'); for (int j = 1; j <= numCols; j++) { var tableCell = textControl1.Tables.GetItem().Cells[i, j]; // Set the text of the cell, and remove the last CRLF tableCell.Text = (splitText.Length >= j) ? splitText[j - 1].TrimEnd('\r', '\n') : string.Empty; // Set the tab position if it's not the first column and the tab position exists if (j > 1 && storedTabPositions.Length >= j - 1 && storedTabPositions[j - 1] != 0) { tableCell.Position = storedTabPositions[j - 2]; } } } }
这基本上是第一个代码片段的反向操作。纯文本表格被拆分成行,每行按制表位拆分。制表位位置用于创建表格列,并将文本插入表格单元格中。
首先必须选择要转换的纯文本表。以下动画截图显示了转换的结果:
需要注意的是,这只适用于带有制表位的简单表格。带有合并单元格或不同列宽的更复杂的表格需要更复杂的算法才能将纯文本表格转换为完全格式化的表格。但是,这种简单的方法在大多数情况下已经足够了。
本文介绍了如何在 TX Text Control 中将带制表位的纯文本表格转换为完全格式化的表格,以及如何将表格转换为纯文本表格。此转换的关键是检测制表位和正确定位表格单元格。
欢迎下载|体验更多TX Text Control产品
获取更多产品信息请咨询慧都在线客服
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
Java 开发团队常常面临测试覆盖率与开发效率的双重挑战。通过引入 AI 与自动化工具,团队不仅能减轻静态分析与单元测试的负担,还能在保障代码质量的同时提升开发节奏。本文以 Parasoft Jtest 为案例,深入探讨了当前主流的 AI 测试实践如何帮助企业实现代码级测试的优化与落地。
Sparx Systems Enterprise Architect(EA)作为一款领先的企业级建模工具,凭借其强大的四大引擎——BPSim、DMN、Open Modelica/SysML和可执行代码生成,为企业提供了从流程优化到智能决策的全方位支持。本文将深入解析这四大核心引擎如何显著提升企业建模的智能化水平和实用价值。
UI自动化测试中,团队常因语言偏好不同而协作困难,脚本复用也麻烦。从简单的录制测试升级到灵活脚本,或者搭建稳定框架,往往费时费力。TestComplete用自动化UI测试直接解决这些问题:它支持多种语言并行开发(Python, C#, C++等),让每个人用顺手的工具;还能轻松把录制脚本转换成代码,省去重写麻烦;并且自带实用框架和项目示例,开箱即用,大大加快搭建速度。
CodeRush 25.1 新推 AI 双引擎 AiGen(语音/文字生成与修改代码)和 AiFind(智能代码搜索),直接在 Visual Studio 环境中响应,免除窗口切换与手动操作,让开发者更专注核心问题。
TX Text Control .NET for WPF 分标准,专业,及企业三个版本,是一套专业的文字处理控件。
TX Text Control ActiveXTX Text Control ActiveX是一个强大的文字处理组件,为开发者提供一个广泛的文字处理功能。它提供了全面的文本格式,邮件合并功能和文字处理关键性功能,如表格支持,图片,页眉和页脚、页面部分等。
TX Text Control .NET Server for ASP.NET一个将文档处理集成到 Web 应用程序中的文档管理控件。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号