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[];

第三步:按分隔符号将数据拆分为多列。

初始化一个字符串数组和一个字符串,遍历工作表中的指定行,按分隔符号(·)将数据为全名的那一列拆分为姓和名两列并将结果保存到字符串数组中,然后将数组的内容赋值给工作表的另两列。

string[] splitText = null;
string text = null;
for (int i = ; i < sheet.LastRow; i++)
{
text = sheet.Range[i + , ].Text;
splitText = text.Split('·');
for (int j = ; j < splitText.Length; j++)
{
sheet.Range[i + , + j + ].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[]; string[] splitText = null;
string text = null;
for (int i = ; i < sheet.LastRow; i++)
{
text = sheet.Range[i + , ].Text;
splitText = text.Split('·');
for (int j = ; j < splitText.Length; j++)
{
sheet.Range[i + , + j + ].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()
Dim splitText As String() = Nothing
Dim text As String = Nothing
For i As Integer = To sheet.LastRow -
text = sheet.Range(i + , ).Text
splitText = text.Split("·"C)
For j As Integer = To splitText.Length -
sheet.Range(i + , + j + ).Text = splitText(j)
Next
Next book.SaveToFile("输出.xlsx", ExcelVersion.Version2010)
End Sub
End Class
End Namespace

(注意:这里我使用了一个免费的Excel组件

C#/VB.NET Excel数据分列的更多相关文章

  1. VB操作EXCEL文件大全

    Private Sub writeToExcel(strTmp1() As String, colTmp1 As Collection)'' Dim tmp1 Dim i1 As Integer, i ...

  2. EXCEL数据透视相关知识

    要边看边总结要点:1.部门管理,标准化作业流程,控制生产经营过程,预知风险2.这一项内容,用一个工作薄三个SHEET表来完成.分类汇总表(可变,N个),源数据表(标准.规范.通用.简洁.正确),1.符 ...

  3. Oracle导入excel数据方法汇总[转]

    摘要:在程序编制过程和数据汇总交换过程中,经常会碰到需要将其他人员在office办公环境下编制的文件数据内容导入oracle中的情况.目前程序开发者经常使用的方法有如下几种:1,使用oracle提供的 ...

  4. 在SQL中导入Excel数据时强制以文本类型导入

    Excel不是关系型数据库,在导入到sql中时对于数值型,sql有时int型会处理成float,有时数字文本混排的列,sql会认为是数值型,导入的结果有的数据变成了null,但是用sql导出excel ...

  5. 向SQL2008R2导入Acess、excel数据

    一:导入Access数据 1.在sql2008查询分析 器中输入如下查询语句能查出access中的数据 SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLE ...

  6. java数据库导入excel数据

    导入数据会将表格分为xls和xlsx两种格式,网上有很多案例 1.excel数据表中的数据不全,数据库中又是必填选项:---从sql语句入手:判断有无 来改变语句 //设置可有可无 字段 加一个必有字 ...

  7. 【转】 如何导入excel数据到数据库,并解决导入时间格式问题

    在办公环境下,经常会用到处理excel数据,如果用写程序导入excel数据到数据库那就太麻烦了,涉及解析excel,还要各种格式问题,下面简单利用数据库本身支持的功能解决这类导入问题. 准备 创建表 ...

  8. Oracle导入excel数据快速方法

    Oracle导入excel数据快速方法 使用PLSQL  Developer工具,这个可是大名鼎鼎的Oracle  DBA最常使用的工具.    在单个文件不大的情况下(少于100000行),并且目的 ...

  9. VB中Excel 2010的导入导出操作

    VB中Excel 2010的导入导出操作 编写人:左丘文 2015-4-11 近来这已是第二篇在讨论VB的相关问题,今天在这里,我想与大家一起分享一下在VB中如何从Excel中导入数据和导出数据到Ex ...

随机推荐

  1. .NET 基础 一步步 一幕幕[面向对象之方法、方法的重载、方法的重写、方法的递归]

    方法.方法的重载.方法的重写.方法的递归 方法: 将一堆代码进行重用的一种机制. 语法: [访问修饰符] 返回类型 <方法名>(参数列表){ 方法主体: } 返回值类型:如果不需要写返回值 ...

  2. 千呼万唤始出来,微软Power BI简体中文版官网终于上线了,中文文档也全了。。

    前几个月时间,研究微软Power BI技术,由于没有任何文档和资料,只能在英文官网瞎折腾,同时也发布了英文文档的相关文章:系列文章,刚好上周把文章发布完,结果简体中文版上线了.哈哈,心里有苦啊,早知道 ...

  3. Opserver开源的服务器监控系统(ASP.NET)

    Opserver是Stack Exchange下的一个开源监控系统,系统本身由C#语言开发的ASP.NET(MVC)应用程序,无需任何复杂的应用配置,入门很快.下载地址:https://github. ...

  4. PHP中PDO事务的使用方法

    事务 (Transaction) 是操作数据库中很重要的一个功能, 它可以让你预定一条, 或者一系列 SQL 语句, 然后一起执行. 在执行的过程中, 如果其中的某条执行失败, 可以回滚所有已更改的操 ...

  5. Spark读写Hbase的二种方式对比

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 一.传统方式 这种方式就是常用的TableInputFormat和TableOutputForm ...

  6. PHP设计模式(七)适配器模式(Adapter For PHP)

    适配器模式:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作. 如下图(借图): // 设置书的接口 // 书接口 interface BookI ...

  7. 简单分析JavaScript中的面向对象

    初学JavaScript的时候有人会认为JavaScript不是一门面向对象的语言,因为JS是没有类的概念的,但是这并不代表JavaScript没有对象的存在,而且JavaScript也提供了其它的方 ...

  8. PostGIS(解压版)安装

    1.软件下载 postgresql-9.6.1-1-windows-x64-binaries.zip https://www.postgresql.org/download/windows/ post ...

  9. mysql 赋予用户权限

    # 赋予权限MySQL> grant 权限参数 on 数据库名称.表名称 to 用户名@用户地址 identified by '用户密码'; # 立即生效权限MySQL> flush pr ...

  10. Raspberry Pi(树莓派)上安装Raspbian(无路由器,无显示器)

    一. 准备工作 1. 树莓派主板 型号:树莓派3 B型 处理器:四核64位ARM Cortex-A53 CPU 内核架构:ARMv8 2. 一张大于8G的TF卡(本人用的是32G的,也作为PiLFS用 ...