以下为导入功能使用范例,可以参考
# Pattern name...: cl_import_czq_excel.4gl # Descriptions...: 采用Java POI方式导入MS Excel # Date & Author..: 18/09/18 caozq IMPORT os IMPORT JAVA org.apache.poi.ss.usermodel.IndexedColors IMPORT JAVA org.apache.poi.hssf.usermodel.HSSFDataFormat IMPORT JAVA org.apache.poi.hssf.usermodel.HSSFWorkbook IMPORT JAVA org.apache.poi.hssf.usermodel.HSSFSheet IMPORT JAVA org.apache.poi.hssf.usermodel.HSSFRow IMPORT JAVA org.apache.poi.hssf.usermodel.HSSFCell IMPORT JAVA org.apache.poi.hssf.usermodel.HSSFCellStyle IMPORT JAVA org.apache.poi.hssf.usermodel.HSSFFont IMPORT JAVA org.apache.poi.poifs.filesystem.POIFSFileSystem IMPORT JAVA java.io.InputStream IMPORT JAVA java.io.FileInputStream DATABASE ds GLOBALS "../../config/top.global" DEFINE fs POIFSFileSystem DEFINE wb HSSFWorkbook DEFINE sheet HSSFSheet DEFINE row HSSFRow DEFINE is InputStream FUNCTION cl_import_czq_excel() DEFINE l_prostr LIKE ze_file.ze03 DEFINE l_fileLocation STRING DEFINE colnum,rowcount INT DEFINE i,j INT DEFINE l_str,l_str1 STRING DEFINE l_tempdir STRING DEFINE l_filename LIKE type_file.chr1000 #选择要导入资料的Excel文件 BEGIN LET l_prostr = cl_getmsg("lib-201", g_lang) WHILE TRUE PROMPT l_prostr CLIPPED FOR l_fileLocation ATTRIBUTE(WITHOUT DEFAULTS) ON ACTION browse_document LET l_fileLocation = cl_browse_file() ON ACTION ACCEPT EXIT WHILE ON ACTION CANCEL EXIT WHILE ON IDLE g_idle_seconds CALL cl_on_idle() RETURN END PROMPT END WHILE #选择要导入资料的Excel文件 END LET l_tempdir =fgl_getenv("TEMPDIR") #获取临时文件夹路径 LET l_filename = os.Path.basename(l_fileLocation) #获取导入文件名 LET l_str = os.Path.join(l_tempdir CLIPPED,l_filename CLIPPED) #拼接成服务器的完整路径 IF NOT cl_upload_file(l_fileLocation,l_str) THEN #将文件先上传到临时文件夹 CALL cl_err(NULL, "lib-212", 1) RETURN END IF LET is = FileInputStream.create(l_str) LET fs = POIFSFileSystem.create(is) LET wb = HSSFWorkbook.create(fs) LET sheet = wb.getSheetAt(0) #获取EXCEL第一个页签 LET row = sheet.getRow(0) #获取第一列标题栏 LET colnum = row.getPhysicalNumberOfCells() #获取列总数 LET rowcount = sheet.getPhysicalNumberOfRows() #获取总行数 FOR i = 1 TO rowcount - 1 #从第二行开始循环 LET row = sheet.getRow(i) FOR j = 0 to colnum-1 #已标题栏列数为准 LET l_str1 = row.getCell(j) #这里写程序逻辑 END FOR END FOR END FUNCTION
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/215391.html原文链接:https://javaforall.net
