开发者社区> 问答> 正文

2.1.4.7excel表格处理相关函数

7.Excel相关

7.1 J_Excel_Create([是否可见:否])

作用:新建Excel并返回对象 是否可见:是/否 创建的excel是否可见
返回值:Excel对象
例子:

Func Example38()
    ;新创建一个Excel,可见
    Local $excel1 = J_Excel_Create("是")
    ;在后台打开Excel,不可见
    Local $excel2 = J_Excel_Open("D:\1.xlsx", "否")
    J_Excel_Write($excel1, 1, 1, "hello", "new_sheet")
    ;Excel表格一共有多少行
    Local $maxrow = J_Excel_MaxCount($excel2, "sheet1")
    ;Excel中一共有多少列
    Local $maxcol = J_Excel_MaxCol($excel2, "sheet1")
    ;拷贝数据,从1行1列到最大行最大列
    J_Excel_CopySell($excel2, 1, 1, $maxrow, $maxcol, "sheet1")
    ;粘贴数据
    J_Excel_PasteSell($excel1, 1, 1, "new2_sheet")
    ;读取Excel1中new2_sheet中的第2行第3列
    Local $string = J_Excel_Read($excel1, 2, 3, "new2_sheet")
    ;信息框显示出读取的数据
    J_MsgBox($string)
    ;删除Excel1的sheet1
    J_Excel_DeleteSheet($excel1, "sheet1")
    ;将Excel1保存至D:\2.xlsx
    J_Excel_Save($excel1, "D:\2.xlsx")
    ;关闭Excel1,保存
    J_Excel_Close($excel1)
    ;关闭Excel2,不保存
    J_Excel_Close($excel2, "否")
EndFunc   ;==>Example38
7.2 J_Excel_Open(文件路径, [是否可见:否], [只读:否],[文件密码], [设置密码])

作用:打开一个Excel文件并返回对象
返回值:Excel对象
例子:

Func Example38()
    ;新创建一个Excel,可见
    Local $excel1 = J_Excel_Create("是")
    ;在后台打开Excel,不可见
    Local $excel2 = J_Excel_Open("D:\1.xlsx", "否")
    J_Excel_Write($excel1, 1, 1, "hello", "new_sheet")
    ;Excel表格一共有多少行
    Local $maxrow = J_Excel_MaxCount($excel2, "sheet1")
    ;Excel中一共有多少列
    Local $maxcol = J_Excel_MaxCol($excel2, "sheet1")
    ;拷贝数据,从1行1列到最大行最大列
    J_Excel_CopySell($excel2, 1, 1, $maxrow, $maxcol, "sheet1")
    ;粘贴数据
    J_Excel_PasteSell($excel1, 1, 1, "new2_sheet")
    ;读取Excel1中new2_sheet中的第2行第3列
    Local $string = J_Excel_Read($excel1, 2, 3, "new2_sheet")
    ;信息框显示出读取的数据
    J_MsgBox($string)
    ;删除Excel1的sheet1
    J_Excel_DeleteSheet($excel1, "sheet1")
    ;将Excel1保存至D:\2.xlsx
    J_Excel_Save($excel1, "D:\2.xlsx")
    ;关闭Excel1,保存
    J_Excel_Close($excel1)
    ;关闭Excel2,不保存
    J_Excel_Close($excel2, "否")
EndFunc   ;==>Example38
7.3 J_Excel_Close(Excel对象, [默认保存:是])

作用:关闭Excel
返回值:成功返回1,失败返回0
例子:

Func Example38()
    ;新创建一个Excel,可见
    Local $excel1 = J_Excel_Create("是")
    ;在后台打开Excel,不可见
    Local $excel2 = J_Excel_Open("D:\1.xlsx", "否")
    J_Excel_Write($excel1, 1, 1, "hello", "new_sheet")
    ;Excel表格一共有多少行
    Local $maxrow = J_Excel_MaxCount($excel2, "sheet1")
    ;Excel中一共有多少列
    Local $maxcol = J_Excel_MaxCol($excel2, "sheet1")
    ;拷贝数据,从1行1列到最大行最大列
    J_Excel_CopySell($excel2, 1, 1, $maxrow, $maxcol, "sheet1")
    ;粘贴数据
    J_Excel_PasteSell($excel1, 1, 1, "new2_sheet")
    ;读取Excel1中new2_sheet中的第2行第3列
    Local $string = J_Excel_Read($excel1, 2, 3, "new2_sheet")
    ;信息框显示出读取的数据
    J_MsgBox($string)
    ;删除Excel1的sheet1
    J_Excel_DeleteSheet($excel1, "sheet1")
    ;将Excel1保存至D:\2.xlsx
    J_Excel_Save($excel1, "D:\2.xlsx")
    ;关闭Excel1,保存
    J_Excel_Close($excel1)
    ;关闭Excel2,不保存
    J_Excel_Close($excel2, "否")
EndFunc   ;==>Example38
7.4 J_Excel_Save(Excel对象,[另存路径])

作用:保存或者另存当前Excel文件,当不输入另存路径的时候就是保存当前已打开的Excel
返回值:成功返回1,失败返回0
例子:

Func Example38()
    ;新创建一个Excel,可见
    Local $excel1 = J_Excel_Create("是")
    ;在后台打开Excel,不可见
    Local $excel2 = J_Excel_Open("D:\1.xlsx", "否")
    J_Excel_Write($excel1, 1, 1, "hello", "new_sheet")
    ;Excel表格一共有多少行
    Local $maxrow = J_Excel_MaxCount($excel2, "sheet1")
    ;Excel中一共有多少列
    Local $maxcol = J_Excel_MaxCol($excel2, "sheet1")
    ;拷贝数据,从1行1列到最大行最大列
    J_Excel_CopySell($excel2, 1, 1, $maxrow, $maxcol, "sheet1")
    ;粘贴数据
    J_Excel_PasteSell($excel1, 1, 1, "new2_sheet")
    ;读取Excel1中new2_sheet中的第2行第3列
    Local $string = J_Excel_Read($excel1, 2, 3, "new2_sheet")
    ;信息框显示出读取的数据
    J_MsgBox($string)
    ;删除Excel1的sheet1
    J_Excel_DeleteSheet($excel1, "sheet1")
    ;将Excel1保存至D:\2.xlsx
    J_Excel_Save($excel1, "D:\2.xlsx")
    ;关闭Excel1,保存
    J_Excel_Close($excel1)
    ;关闭Excel2,不保存
    J_Excel_Close($excel2, "否")
EndFunc   ;==>Example38
7.5 J_Excel_Write(Excel对象, 第几行, 第几列, 要写入的数据, [Sheet名称])

作用:向Excel指定Sheet写入数据(文本格式),注:sheet名称为空的时候是向当前激活Sheet中写入
返回值:成功返回1,失败返回0
例子:

Func Example38()
    ;新创建一个Excel,可见
    Local $excel1 = J_Excel_Create("是")
    ;在后台打开Excel,不可见
    Local $excel2 = J_Excel_Open("D:\1.xlsx", "否")
    J_Excel_Write($excel1, 1, 1, "hello", "new_sheet")
    ;Excel表格一共有多少行
    Local $maxrow = J_Excel_MaxCount($excel2, "sheet1")
    ;Excel中一共有多少列
    Local $maxcol = J_Excel_MaxCol($excel2, "sheet1")
    ;拷贝数据,从1行1列到最大行最大列
    J_Excel_CopySell($excel2, 1, 1, $maxrow, $maxcol, "sheet1")
    ;粘贴数据
    J_Excel_PasteSell($excel1, 1, 1, "new2_sheet")
    ;读取Excel1中new2_sheet中的第2行第3列
    Local $string = J_Excel_Read($excel1, 2, 3, "new2_sheet")
    ;信息框显示出读取的数据
    J_MsgBox($string)
    ;删除Excel1的sheet1
    J_Excel_DeleteSheet($excel1, "sheet1")
    ;将Excel1保存至D:\2.xlsx
    J_Excel_Save($excel1, "D:\2.xlsx")
    ;关闭Excel1,保存
    J_Excel_Close($excel1)
    ;关闭Excel2,不保存
    J_Excel_Close($excel2, "否")
EndFunc   ;==>Example38
7.6 J_Excel_Read(Excel对象, 第几行, 第几列, [Sheet名称])

作用:向Excel指定Sheet读取数据,注:sheet名称为空的时候是向当前激活Sheet中读取
返回值:成功返回相应单元格的数据,失败返回空””
例子:

Func Example38()
    ;新创建一个Excel,可见
    Local $excel1 = J_Excel_Create("是")
    ;在后台打开Excel,不可见
    Local $excel2 = J_Excel_Open("D:\1.xlsx", "否")
    J_Excel_Write($excel1, 1, 1, "hello", "new_sheet")
    ;Excel表格一共有多少行
    Local $maxrow = J_Excel_MaxCount($excel2, "sheet1")
    ;Excel中一共有多少列
    Local $maxcol = J_Excel_MaxCol($excel2, "sheet1")
    ;拷贝数据,从1行1列到最大行最大列
    J_Excel_CopySell($excel2, 1, 1, $maxrow, $maxcol, "sheet1")
    ;粘贴数据
    J_Excel_PasteSell($excel1, 1, 1, "new2_sheet")
    ;读取Excel1中new2_sheet中的第2行第3列
    Local $string = J_Excel_Read($excel1, 2, 3, "new2_sheet")
    ;信息框显示出读取的数据
    J_MsgBox($string)
    ;删除Excel1的sheet1
    J_Excel_DeleteSheet($excel1, "sheet1")
    ;将Excel1保存至D:\2.xlsx
    J_Excel_Save($excel1, "D:\2.xlsx")
    ;关闭Excel1,保存
    J_Excel_Close($excel1)
    ;关闭Excel2,不保存
    J_Excel_Close($excel2, "否")
EndFunc   ;==>Example38
7.7 J_Excel_CopySell(Excel对象, 起始单元格行, 起始单元格列,结束单元格行, 结束单元格列,[Sheet名称])

作用:向Excel指定Sheet复制数据,注:sheet名称为空的时候是向当前激活Sheet中复制
返回值:成功返回1,失败返回0
例子:

Func Example38()
    ;新创建一个Excel,可见
    Local $excel1 = J_Excel_Create("是")
    ;在后台打开Excel,不可见
    Local $excel2 = J_Excel_Open("D:\1.xlsx", "否")
    J_Excel_Write($excel1, 1, 1, "hello", "new_sheet")
    ;Excel表格一共有多少行
    Local $maxrow = J_Excel_MaxCount($excel2, "sheet1")
    ;Excel中一共有多少列
    Local $maxcol = J_Excel_MaxCol($excel2, "sheet1")
    ;拷贝数据,从1行1列到最大行最大列
    J_Excel_CopySell($excel2, 1, 1, $maxrow, $maxcol, "sheet1")
    ;粘贴数据
    J_Excel_PasteSell($excel1, 1, 1, "new2_sheet")
    ;读取Excel1中new2_sheet中的第2行第3列
    Local $string = J_Excel_Read($excel1, 2, 3, "new2_sheet")
    ;信息框显示出读取的数据
    J_MsgBox($string)
    ;删除Excel1的sheet1
    J_Excel_DeleteSheet($excel1, "sheet1")
    ;将Excel1保存至D:\2.xlsx
    J_Excel_Save($excel1, "D:\2.xlsx")
    ;关闭Excel1,保存
    J_Excel_Close($excel1)
    ;关闭Excel2,不保存
    J_Excel_Close($excel2, "否")
EndFunc   ;==>Example38
7.8 J_Excel_PasteSell(Excel对象, 单元格行, 单元格列, [Sheet名称])

作用:向Excel指定Sheet粘贴数据,注:sheet名称为空的时候是向当前激活Sheet中粘贴
返回值:成功返回1,失败返回0
例子:

Func Example38()
    ;新创建一个Excel,可见
    Local $excel1 = J_Excel_Create("是")
    ;在后台打开Excel,不可见
    Local $excel2 = J_Excel_Open("D:\1.xlsx", "否")
    J_Excel_Write($excel1, 1, 1, "hello", "new_sheet")
    ;Excel表格一共有多少行
    Local $maxrow = J_Excel_MaxCount($excel2, "sheet1")
    ;Excel中一共有多少列
    Local $maxcol = J_Excel_MaxCol($excel2, "sheet1")
    ;拷贝数据,从1行1列到最大行最大列
    J_Excel_CopySell($excel2, 1, 1, $maxrow, $maxcol, "sheet1")
    ;粘贴数据
    J_Excel_PasteSell($excel1, 1, 1, "new2_sheet")
    ;读取Excel1中new2_sheet中的第2行第3列
    Local $string = J_Excel_Read($excel1, 2, 3, "new2_sheet")
    ;信息框显示出读取的数据
    J_MsgBox($string)
    ;删除Excel1的sheet1
    J_Excel_DeleteSheet($excel1, "sheet1")
    ;将Excel1保存至D:\2.xlsx
    J_Excel_Save($excel1, "D:\2.xlsx")
    ;关闭Excel1,保存
    J_Excel_Close($excel1)
    ;关闭Excel2,不保存
    J_Excel_Close($excel2, "否")
EndFunc   ;==>Example38
7.9 J_Excel_MaxCount(Excel对象,[Sheet名称])

作用:获取Excel表格中指定Sheet的数据行数,注:sheet名称为空的时候是获取当前激活Sheet中的行数
返回值:成功返回Excel表格的行数,失败返回0
例子:

Func Example38()
    ;新创建一个Excel,可见
    Local $excel1 = J_Excel_Create("是")
    ;在后台打开Excel,不可见
    Local $excel2 = J_Excel_Open("D:\1.xlsx", "否")
    J_Excel_Write($excel1, 1, 1, "hello", "new_sheet")
    ;Excel表格一共有多少行
    Local $maxrow = J_Excel_MaxCount($excel2, "sheet1")
    ;Excel中一共有多少列
    Local $maxcol = J_Excel_MaxCol($excel2, "sheet1")
    ;拷贝数据,从1行1列到最大行最大列
    J_Excel_CopySell($excel2, 1, 1, $maxrow, $maxcol, "sheet1")
    ;粘贴数据
    J_Excel_PasteSell($excel1, 1, 1, "new2_sheet")
    ;读取Excel1中new2_sheet中的第2行第3列
    Local $string = J_Excel_Read($excel1, 2, 3, "new2_sheet")
    ;信息框显示出读取的数据
    J_MsgBox($string)
    ;删除Excel1的sheet1
    J_Excel_DeleteSheet($excel1, "sheet1")
    ;将Excel1保存至D:\2.xlsx
    J_Excel_Save($excel1, "D:\2.xlsx")
    ;关闭Excel1,保存
    J_Excel_Close($excel1)
    ;关闭Excel2,不保存
    J_Excel_Close($excel2, "否")
EndFunc   ;==>Example38
7.10 J_Excel_MaxCol(Excel对象,[Sheet名称])

作用:获取Excel表格中指定Sheet的数据列数,注:sheet名称为空的时候是获取当前激活Sheet中的列数
返回值:成功返回Excel表格的列数,失败返回0
例子:

Func Example38()
    ;新创建一个Excel,可见
    Local $excel1 = J_Excel_Create("是")
    ;在后台打开Excel,不可见
    Local $excel2 = J_Excel_Open("D:\1.xlsx", "否")
    J_Excel_Write($excel1, 1, 1, "hello", "new_sheet")
    ;Excel表格一共有多少行
    Local $maxrow = J_Excel_MaxCount($excel2, "sheet1")
    ;Excel中一共有多少列
    Local $maxcol = J_Excel_MaxCol($excel2, "sheet1")
    ;拷贝数据,从1行1列到最大行最大列
    J_Excel_CopySell($excel2, 1, 1, $maxrow, $maxcol, "sheet1")
    ;粘贴数据
    J_Excel_PasteSell($excel1, 1, 1, "new2_sheet")
    ;读取Excel1中new2_sheet中的第2行第3列
    Local $string = J_Excel_Read($excel1, 2, 3, "new2_sheet")
    ;信息框显示出读取的数据
    J_MsgBox($string)
    ;删除Excel1的sheet1
    J_Excel_DeleteSheet($excel1, "sheet1")
    ;将Excel1保存至D:\2.xlsx
    J_Excel_Save($excel1, "D:\2.xlsx")
    ;关闭Excel1,保存
    J_Excel_Close($excel1)
    ;关闭Excel2,不保存
    J_Excel_Close($excel2, "否")
EndFunc   ;==>Example38
7.11 J_Excel_DeleteSheet(Excel对象,Sheet名称)

作用:删除Excel表格中指定的Sheet
返回值:成功返回1,失败返回0
例子:

Func Example38()
    ;新创建一个Excel,可见
    Local $excel1 = J_Excel_Create("是")
    ;在后台打开Excel,不可见
    Local $excel2 = J_Excel_Open("D:\1.xlsx", "否")
    J_Excel_Write($excel1, 1, 1, "hello", "new_sheet")
    ;Excel表格一共有多少行
    Local $maxrow = J_Excel_MaxCount($excel2, "sheet1")
    ;Excel中一共有多少列
    Local $maxcol = J_Excel_MaxCol($excel2, "sheet1")
    ;拷贝数据,从1行1列到最大行最大列
    J_Excel_CopySell($excel2, 1, 1, $maxrow, $maxcol, "sheet1")
    ;粘贴数据
    J_Excel_PasteSell($excel1, 1, 1, "new2_sheet")
    ;读取Excel1中new2_sheet中的第2行第3列
    Local $string = J_Excel_Read($excel1, 2, 3, "new2_sheet")
    ;信息框显示出读取的数据
    J_MsgBox($string)
    ;删除Excel1的sheet1
    J_Excel_DeleteSheet($excel1, "sheet1")
    ;将Excel1保存至D:\2.xlsx
    J_Excel_Save($excel1, "D:\2.xlsx")
    ;关闭Excel1,保存
    J_Excel_Close($excel1)
    ;关闭Excel2,不保存
    J_Excel_Close($excel2, "否")
EndFunc   ;==>Example38
7.12 J_Excel_GetSheetNames(Excel对象,序号=0)

作用:获取Excel表格中指定的Sheet个数和名称 返回值:当序号为0的时候返回sheet的个数,当序号值大于0的时候返回sheet所对应的名称 例子:

Func Example50()
    ;定义一个局域变量$excel,用于保存打开的Excel表格对象。Excel表格打开后处于可见状态
    Local $excel = J_Excel_Open("E:\数据.xlsx", "是")
    ;定义一个局域变量,用于保存$excel对象中Sheet的个数
    Local $res = J_Excel_GetSheetNames($excel, 0)
    ;创建一个循环,从1到Sheet的最大值,用于遍历每一个Sheet的名字
    For $i = 1 To $res
        ;定义一个局域变量$name,用于保存$i个Sheet的名字
        Local $name = J_Excel_GetSheetNames($excel, $i)
        ;弹出一个提示框,显示当前是第几个sheet和sheet的名字
        J_MsgBox($name, "第" & $i & "个")
    Next
EndFunc   ;==>Example50

展开
收起
福利达人 2017-05-10 08:57:46 5800 0
1 条回答
写回答
取消 提交回答
  • github.com/xuri

    开源一个可以支持原生图表、图片,透视表,超大文档读写等高阶功能的基础库 Excelize: https://github.com/xuri/excelize

    2021-12-10 17:16:18
    赞同 1 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载