找回密码
 立即注册

QQ登录

只需一步,快速开始

Richard.Ma 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-12-3 12:30  /   查看:59  /  回复:0
本帖最后由 Richard.Ma 于 2024-12-3 12:33 编辑

在 .NET 应用程序中处理 Excel 数据时,经常会遇到需要将文本拆分成多列。本教程中,我们将展示如何使用 API 以编程方式将文本拆分为多列,或通过使用 .NET 电子表格组件 Spread.NET调用运行时将文本转换为列向导,确保您和您的用户可以在 WinForms 应用程序中高效地管理数据。

在 .NET WinForms 应用程序中将文本拆分为列,可以使用下面的这些方式:
  • 使用 C# 和 VB.NET 以编程方式将文本拆分为列

  • TextToColumns 方法
  • TEXTSPLIT 函数

  • 在 WinForms 应用程序中调用文本分列向导
  • 以编程方式调用将文本转换为列向导
  • 使用 Spread Designer 和 Ribbon Control 的无代码解决方案


通过代码将文本拆分为列
为了在 .NET 应用程序中自动执行“文本分列”功能,开发人员可以使用 Spread.NET 的 API 调用TextToColumns方法或使用内置的TEXTSPLIT函数并高效地拆分单元格中的文本,类似于 Excel 的内置功能。这种方法可确保数据组织的一致性,同时降低手动错误的风险。

TextToColumns 方法
以下代码演示了调用TextToColumns方法使用分隔符或列宽选项将文本拆分为单独的列。
  1. <font size="3">private void OnTextToColumnByCodeClick(object sender, EventArgs e)
  2.   {
  3.       var sheet = _fpSpread.AsWorkbook().ActiveSheet;
  4.       var selection = sheet.Selection;
  5.       sheet.Cells[selection.Row, selection.Column, selection.Row2, selection.Column2]
  6.           .TextToColumns("$B$1", TextParsingType.Delimited, TextQualifier.DoubleQuote, false, false, false, true);
  7.   }</font>
复制代码




设置TEXTSPLIT 公式
以下代码显示了在单元格中使用TEXTSPLIT函数。这相当于用于拆分文本的TextToColumns方法,对具有自定义分隔符的行进行操作。
  1. <font size="3">IWorkbook workbook = fpSpread1.AsWorkbook();
  2. workbook.WorkbookSet.CalculationEngine.CalcFeatures = CalcFeatures.All;
  3. ...
  4. fpSpread1.ActiveSheet.Cells["C2"].Formula = "TEXTSPLIT(A2," ")";
  5. fpSpread1.ActiveSheet.Cells["C3"].Formula = "TEXTSPLIT(A3," ")";
  6. fpSpread1.ActiveSheet.Cells["C4"].Formula = "TEXTSPLIT(A4,{",",";"})";</font>
复制代码



在 WinForms 应用程序中调用文本分列向导

Spread.NET 为用户提供了多种方式来访问功能强大的内置类似 Excel 的“将文本转换为列 向导”对话框。您可以使用BuiltInDialogs类以编程方式调用向导,也可以让用户在运行时通过Spread 设计器功能区 控件访问它,而无需额外的代码。

通过代码调用将文本转换为列向导对话框
BuiltInDialogs允许您调用TextToColums来调用 .NET WinForms 应用中内置的类似 Excel 的“将文本转换为列”向导。这使用户能够在运行时手动解析和格式化数据。
  1. <font size="3">private void OnTextToColumnMenuItemClick(object sender, EventArgs e)
  2.   {
  3.     var textToColumnDialog = FarPoint.Win.Spread.Dialogs.BuiltInDialogs.TextToColumns(_fpSpread);
  4.     if (textToColumnDialog != null)
  5.         textToColumnDialog.Show(_fpSpread);
  6.   }</font>
复制代码



使用 Spread Designer 和 Ribbon Control 的无代码解决方案
Spread.NET 还包括一个Spread 设计器和一个功能区控件,为用户提供了一种简单、无需代码的方式来访问“文本分列”功能。这些工具在“数据工具”选项卡中有一个“文本分列”按钮,允许用户在运行时直接在应用程序内拆分文本。
这两种方法都可以实现无缝体验,无论您是通过编程方式自动化流程还是通过熟悉的 UI 让用户进行控制。

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部