天天看点

aardio npoi库操作excel (二)读写内容

在sheet对象中读写内容的函数,只有四个。定位单元格我们同样可以使用序号(从1开始)或使用区域字符串如“B4” 表示第4行,第2列的单元格。

函数名 说明
setCellValue 读取已有工作表,不存在则创建一个新工作表
getCellValue 获取单元格的值
getTable 读取区域的内容并返回一个二维的table
setTable 从指定单元格位置开始,将二维的table写入

1.setCellValue写入内容,除了写入单个单元格内容还可以整行或整列写入:

import npoi //导入库

//当前目录如果存在文件则读取,不存在则创建文件,返回工作薄对象
workBook = npoi("/内容.xlsx") 

//创建工作表
sheet = workBook.sheet("工作表1")

//在行1,列1写入数字10
sheet.setCellValue(1,1,10)

//在B1(列2,行1)写入字符串 "你好"
sheet.setCellValue("B1","你好")


//从B2(列2,行2)开始,同一行连续写入table的内容
tab = {5,6,7,8,"字符串",tostring(time.now())}
sheet.setCellValue("B2",tab)

//从B3(列2,行3)开始,同一列连续写入table的内容
tab2 = {9,10,11,12,13}
sheet.setCellValue("B3",tab2,2) //第三个参数2,表示同一列写入

workBook.save() //保存到文件
           

写入后效果:

aardio npoi库操作excel (二)读写内容

2.getCellValue读取单元格内容,如果想读取整行或整列的内容,我们需要知道最后行sheet.lastRowNum的序号和最后单元格row.lastCellNum的序号。

import console
import npoi //导入库

//当前目录如果存在文件则读取,不存在则创建文件,返回工作薄对象
workBook = npoi("/内容.xlsx") 

//获取工作表
sheet = workBook.sheet("工作表1")

//读取单个单元格内容
console.log("A1的内容:",sheet.getCellValue(1,1))

console.log("B1的内容:",sheet.getCellValue("B1"))

//获取行对象
row = sheet.row(2)

//行最后一个单元格序号
n = row.lastCellNum

//读取从B2开始到行结束的数据
console.writeText("B2整行内容:",'\t')
for(i=2;n;1){
    console.writeText(sheet.getCellValue(2,i),'\t')
}

//写入空行
console.log()
console.log()

console.log("下面是从B3开始,整列的内容:")
//结束的行序号
r = sheet.lastRowNum

//读取从B3(列2,行3)开始,同一列连续写入的内容
for(i=3;r;1){
    console.log(sheet.getCellValue(i,2))
}

workBook.save() //保存到文件

console.pause()
           

效果如下:

aardio npoi库操作excel (二)读写内容

3.有时候我们要读取某区域的数据为一个table,方便我们导入到数据库或进行其它操作,就要用到getTable ,参数是“初始区域”和“结束区域”

import console
import npoi //导入库

//当前目录如果存在文件则读取,不存在则创建文件,返回工作薄对象
workBook = npoi("/内容.xlsx") 

//获取工作表
sheet = workBook.sheet("工作表1")

console.log("读取A1到B5的内容:")

//没有值的单元格为空字符串
console.dump(sheet.getTable("A1","B5"))
workBook.save() //保存到文件

console.pause()
           

效果图如下:

aardio npoi库操作excel (二)读写内容

4.最后,我们可以使用setTable从指定的区域写入二维的内容

import npoi //导入库

//当前目录如果存在文件则读取,不存在则创建文件,返回工作薄对象
workBook = npoi("/内容.xlsx") 

//获取工作表
sheet = workBook.sheet("工作表1")

//定义要写入的二维table内容

tab = {
    {"a","b","c","d"},
    {11,12,13,14}
}

//从C4开始写入
sheet.setTable("C4",tab)

workBook.save() //保存到文件
           

效果图:

aardio npoi库操作excel (二)读写内容