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组件

时间: 2024-10-12 08:52:41

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

巧用EXCEL数据透视表分析IIS日志

下面说个比较简单且非常实用的方法,通过EXCEL的一些简单的公式做出想得到的一系列数据,例如时间间隔,爬行页面,返回状态码,网址参数,蜘蛛类型,蜘蛛 IP 等,通过以上数据可 以进行对网站的问题的排查,更正. 首先必须有自己的 服务器 或者能够查看IIS日志的权限,通过 FTP 将iis日志文件从空间中 下载 到本地服务器获取IIS日志的方式:打开IIS,点击要查询网站>右键>属性>网站选项卡>属性>即可看到如图 如果是空间的话有些空间服务上会将日志文件放在网站根目录的.如果

VB操作EXCEL文件大全

Private Sub writeToExcel(strTmp1() As String, colTmp1 As Collection) ' '    Dim tmp1 Dim i1 As Integer, intCol As Integer, intRow As Integer Dim xlApp As New Excel.Application Dim xlBook As New Excel.Workbook Dim xlSheet As New Excel.Worksheet Dim st

sql server导入excel数据,字符串类型变成float

如secel中身份证字段,sql server导入后该字段变成float类型,字符串数据变成null, 解决方法:直接将excel中的这一列全部转为了文本格式. 点击excel中的转换列,菜单中点选数据-----分列-----下一步---下一步---文本---完成--保存. 再次导入即可.转为了文本格式.详情搜索  excel中某列数字转文字

数据从Excel数据导入到数据库的excel操作控件Spire.XLS for .NET

Spire.XLS for .NET控件是e-iceblue公司开发的一款支持对所有Excel格式类型文件进行操作的.NET 控件.它适用于任何类型的应用程序比如ASP.NET Web应用程序或者Windows桌面应用程序.Spire.XLS for .NET允许软件开发人员创建和管理Excel,而不需要安装Microsoft Excel或者Microsoft Office Excel.Spire.XLS for .NET和微软公司无隶属关系,也没有授权,赞助关系.相比Microsoft,Spi

Oracle导入excel数据快速方法

Oracle导入excel数据快速方法 使用PLSQL  Developer工具,这个可是大名鼎鼎的Oracle  DBA最常使用的工具.    在单个文件不大的情况下(少于100000行),并且目的表结构已经存在的情况下——对于excel而言肯定不会超过了,因为excel文件的最大行为65536——  可以全选数据复制,然后用PLSQL  Developer工具.    1  在PLSQL  Developer的sql  window里输入select  *  from  test  for 

VB.NET excel 列排序

VB.NET excel 按列排序 今天在VB.NET的项目中需要导出数据到EXCEL,并且还要对VB.NET EXCEL进行列的排序操作(sort),总结了下,把关键代码帖出来,备用下 Dim Xls As Excel.Application = New Excel.Application '定义excel应用程序 Dim Xlsbook As Excel.Workbook '定义工作簿 Dim Xlssheet As Excel.Worksheet '定义工作表 Xlsbook = Xls.

SharePoint集成Excel数据和Excel Web Access Web部件

SharePoint集成Excel数据和Excel Web Access Web部件 Excel Web Access Web部件在SharePoint中Excel电子表单里呈现数据. 1. 打开Excel 2010.创建空白工作薄. 2. 添加数据. 3. 点击另存为,选择文档库,点击确定,选择文档,点击确定. 4. 也可以添加Web部件. 5. 编辑部件,输入Excel的URL. SharePoint集成Excel数据和Excel Web Access Web部件,布布扣,bubuko.co

kettle将Excel数据导入oracle

导读 Excel数据导入Oracle数据库的方法: 1.使用PL SQL 工具附带的功能,效率比较低 可参考这篇文章的介绍:http://www.2cto.com/database/201212/176777.html 2.使用Kettle工具,免费,相比之下功能更丰富,可实现一定的业务逻辑,推荐使用 Kettle将Excel数据导入Oracle过程记录如下: 1.准备Excel文件: 注意:Excel文件要有字段名称说明:如这里的id,name,age 2.打开Kettle,文件-->新建--

SQL Server服务器上需要导入Excel数据的必要条件

SQL Server服务器上需要导入Excel数据,必须安装2007 Office system 驱动程序:数据连接组件,或者Access2010的数据库引擎可再发行程序包,这样就不必在服务器上装Excel了.