本篇文章将介绍通过使用spire.xls for .net将excel单元格中的文本类型数据按分隔符拆分为多列的方法。注意这里的分隔符须是英文输入状态下的字符,如逗号(,)、空格符( )、分号(;)、斜杠(/)、横线(-)等或其他自定义分隔数据的字符。
c#
//创建workbook,加载excel测试文档
workbook book = new workbook();
book.loadfromfile("sample.xlsx");
//获取指定工作表
worksheet sheet = book.worksheets[0];
//添加文本到单元格
sheet.range["b1:f1"].merge();
sheet.range["b1"].style.horizontalalignment = horizontalaligntype.center;
sheet.range["b1"].value = "数据拆分结果";
sheet.range["b1"].style.font.color= color.red;
sheet.range["b1"].style.font.isbold = true;
//从第2行数据遍历到最后一行
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];
}
}
//设置数据自适应列宽
sheet.allocatedrange.autofitcolumns();
//保存文档
book.savetofile("result.xlsx", excelversion.version2010);
vb.net
'创建workbook,加载excel测试文档
dim book as new workbook()
book.loadfromfile("sample.xlsx")
'获取指定工作表
dim sheet as worksheet = book.worksheets(0)
'添加文本到单元格
sheet.range("b1:f1").merge()
sheet.range("b1").style.horizontalalignment = horizontalaligntype.center
sheet.range("b1").value = "数据拆分结果"
sheet.range("b1").style.font.color = color.red
sheet.range("b1").style.font.isbold = true
'从第2行数据遍历到最后一行
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
'设置数据自适应列宽
sheet.allocatedrange.autofitcolumns()
'保存文档
book.savetofile("result.xlsx", excelversion.version2010)