Excel 中可在“数据”菜单栏下对选中的单元格或者整列数据设置“分列”,即:将单元格中的内容按照指定分隔符,如逗号(,)、空格符( )、分号(;)、斜杠(/)、横线(-)等或其他自定义分隔数据的字符拆分成多列数据,此功能能够快速地实现数据分布、排列等。下面,将通过使用 Spire.XLS for .NET 来介绍如何设置数据分列。
安装 Spire.XLS for .NET
首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.XLS
数据分列
详细步骤如下:
- 创建 Workbook 类的对象,并调用 Workbook.LoadFromFile(string fileName) 方法加载 Excel 工作簿。
- 通过 Workbook.Worksheets[int Index] 属性获取指定工作表。
- 初始化 string 类型的字符及 string 类型的数组。
- for 循环遍历表格中的每行数据,通过 CellRange.Text 属性获取单元格中的文本内容;通过 string.Split() 方法,根据分隔符将单元格中的数据分列;并将分列的数据循环写入 string 数组
- 通过 XlsRange.AutoFitColumns() 方法设置数据自适应列宽。
- 使用 Workbook.SaveToFile(string fileName, FileFormat fileFormat) 方法保存文档到指定路径。
- C#
- VB.NET
using Spire.Xls;
namespace SplitData_XLS
{
class Program
{
static void Main(string[] args)
{
//创建Workbook,加载Excel测试文档
Workbook book = new Workbook();
book.LoadFromFile("sample.xlsx");
//获取指定工作表
Worksheet sheet = book.Worksheets[0];
//遍历数据
string[] splitText;
string text;
for (int i = 0; i < sheet.LastRow; i++)
{
text = sheet.Range[i + 1, 1].Text;
//分割按逗号作为分隔符的数据列(注意这里分隔符以英文输入状态下的字符为准)
splitText = text.Split(',');
//保存被分割的数据到数组,数组项写入列
for (int j = 1; j < splitText.Length; j++)
{
sheet.Range[i + 1, 1 + j + 1].Text = splitText[j];
}
}
//设置数据自适应列宽
sheet.AllocatedRange.AutoFitColumns();
//保存文档
book.SaveToFile("result.xlsx", ExcelVersion.Version2010);
}
}
}
Imports Spire.Xls
Namespace SplitData_XLS
Class Program
Private Shared Sub Main(args As String())
'创建Workbook,加载Excel测试文档
Dim book As New Workbook()
book.LoadFromFile("sample.xlsx")
'获取指定工作表
Dim sheet As Worksheet = book.Worksheets(0)
'遍历数据
Dim splitText As String()
Dim text As String
For i As Integer = 0 To sheet.LastRow - 1
text = sheet.Range(i + 1, 1).Text
'分割按逗号作为分隔符的数据列(注意这里分隔符以英文输入状态下的字符为准)
splitText = text.Split(","C)
'保存被分割的数据到数组,数组项写入列
For j As Integer = 1 To splitText.Length - 1
sheet.Range(i + 1, 1 + j + 1).Text = splitText(j)
Next
Next
'设置数据自适应列宽
sheet.AllocatedRange.AutoFitColumns()
'保存文档
book.SaveToFile("result.xlsx", ExcelVersion.Version2010)
End Sub
End Class
End Namespace
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。