C#/VB.NET Excel数据分列
C#/VB.NET Excel数据分列
有时候我们需要将保存在Excel单元格中的组合型数据拆分为多列(如将全名拆分为姓和名两列)以方便我们处理、记忆或保存。为了避免重复和大量的手动输入工作,Excel给我们提供了一个数据分列的功能。下面这幅图展示了如何在Excel中实现数据分列:
这篇文章将介绍如何使用C#和VB.NET编程的方式来实现Excel数据分列的功能。
步骤和代码:
第一步:创建一个新的Workbook类的对象,并加载Excel文档。
Workbook book = new Workbook(); book.LoadFromFile("测试.xlsx");
第二步:获取Excel文档中存放需要被拆分的数据的工作表,这里是第一个工作表。
Worksheet sheet = book.Worksheets[0];
第三步:按分隔符号将数据拆分为多列。
初始化一个字符串数组和一个字符串,遍历工作表中的指定行,按分隔符号(·)将数据为全名的那一列拆分为姓和名两列并将结果保存到字符串数组中,然后将数组的内容赋值给工作表的另两列。
string[] splitText = null; string text = null; for (int i = 1; i < sheet.LastRow; i++) { text = sheet.Range[i + 1, 1].Text; splitText = text.Split('·'); for (int j = 0; j < splitText.Length; j++) { sheet.Range[i + 1, 1 + j + 1].Text = splitText[j]; } }
第四步:保存文档。
book.SaveToFile("输出.xlsx", ExcelVersion.Version2010);
运行代码,得到如下结果:
全部代码:
C#:
using Spire.Xls; namespace Split_Column_Data_to_Several_Columns { class Program { static void Main(string[] args) { Workbook book = new Workbook(); book.LoadFromFile("测试.xlsx"); Worksheet sheet = book.Worksheets[0]; string[] splitText = null; string text = null; for (int i = 1; i < sheet.LastRow; i++) { text = sheet.Range[i + 1, 1].Text; splitText = text.Split('·'); for (int j = 0; j < splitText.Length; j++) { sheet.Range[i + 1, 1 + j + 1].Text = splitText[j]; } } book.SaveToFile("输出.xlsx", ExcelVersion.Version2010); } } }
VB.NET:
Imports Spire.Xls Namespace Split_Column_Data_to_Several_Columns Class Program Private Shared Sub Main(args As String()) Dim book As New Workbook() book.LoadFromFile("测试.xlsx") Dim sheet As Worksheet = book.Worksheets(0) Dim splitText As String() = Nothing Dim text As String = Nothing For i As Integer = 1 To sheet.LastRow - 1 text = sheet.Range(i + 1, 1).Text splitText = text.Split("·"C) For j As Integer = 0 To splitText.Length - 1 sheet.Range(i + 1, 1 + j + 1).Text = splitText(j) Next Next book.SaveToFile("输出.xlsx", ExcelVersion.Version2010) End Sub End Class End Namespace
(注意:这里我使用了一个免费的Excel组件)
分类:
.NET EXCEL
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)