当前位置: 首页 > news >正文

【ABAP】ole2 excel多sheet导入导出

原理就不分享了
原来是用了动态表格,但是要导出不方便,所以就写死了,excel多sheet导入的类放在另一篇文章里

REPORT  zcdemo17.
INCLUDE ole2incl.DATA: excel     TYPE ole2_object,workbooks TYPE ole2_object,workbook  TYPE ole2_object,sheet     TYPE ole2_object,cell      TYPE ole2_object,border    TYPE ole2_object,column    TYPE ole2_object,borders   TYPE ole2_object,entirecol TYPE ole2_object,interior  TYPE ole2_object.DATA: BEGIN OF w_sheet OCCURS 0,field01 TYPE string,field02 TYPE string,field03 TYPE string,field04 TYPE string,field05 TYPE string,field06 TYPE string,field07 TYPE string,field08 TYPE string,field09 TYPE string,field10 TYPE string,field11 TYPE string,field12 TYPE string,field13 TYPE string,field14 TYPE string,field15 TYPE string,field16 TYPE string,field17 TYPE string,field18 TYPE string,field19 TYPE string,field20 TYPE string,field21 TYPE string,field22 TYPE string,field23 TYPE string,field24 TYPE string,field25 TYPE string,field26 TYPE string,field27 TYPE string,field28 TYPE string,field29 TYPE string,field30 TYPE string,field31 TYPE string,field32 TYPE string,field33 TYPE string,field34 TYPE string,field35 TYPE string,field36 TYPE string,field37 TYPE string,field38 TYPE string,field39 TYPE string,field40 TYPE string,field41 TYPE string,field42 TYPE string,field43 TYPE string,field44 TYPE string,field45 TYPE string,field46 TYPE string,field47 TYPE string,field48 TYPE string,field49 TYPE string,field50 TYPE string,field51 TYPE string,field52 TYPE string,field53 TYPE string,field54 TYPE string,field55 TYPE string,field56 TYPE string,field57 TYPE string,field58 TYPE string,field59 TYPE string,field60 TYPE string,field61 TYPE string,field62 TYPE string,field63 TYPE string,field64 TYPE string,field65 TYPE string,field66 TYPE string,field67 TYPE string,field68 TYPE string,field69 TYPE string,field70 TYPE string,field71 TYPE string,field72 TYPE string,field73 TYPE string,field74 TYPE string,field75 TYPE string,field76 TYPE string,field77 TYPE string,field78 TYPE string,field79 TYPE string,field80 TYPE string,field81 TYPE string,field82 TYPE string,field83 TYPE string,field84 TYPE string,field85 TYPE string,field86 TYPE string,field87 TYPE string,field88 TYPE string,field89 TYPE string,field90 TYPE string,field91 TYPE string,field92 TYPE string,field93 TYPE string,field94 TYPE string,field95 TYPE string,field96 TYPE string,field97 TYPE string,field98 TYPE string,field99 TYPE string,END OF w_sheet.DATA: t_sheet LIKE TABLE OF w_sheet.DATA:BEGIN OF gs_excel,
*       matnr        TYPE mara-matnr,
*       maktx        TYPE makt-maktx,
*       meins        TYPE mara-meins,
*       creationdate TYPE datum,
*       creationtime TYPE uzeit,sheet_num TYPE i,sheet LIKE TABLE OF w_sheet,END OF gs_excel.
DATA gt_excel LIKE TABLE OF gs_excel.DATA:BEGIN OF gs_excel_sheet1,matnr        TYPE mara-matnr,meins        TYPE mara-meins,creationdate TYPE datum,creationtime TYPE uzeit,END OF gs_excel_sheet1.
DATA gt_excel_sheet1 LIKE TABLE OF gs_excel_sheet1.DATA:BEGIN OF gs_excel_sheet2,matnr TYPE mara-matnr,maktx TYPE makt-maktx,END OF gs_excel_sheet2.
DATA gt_excel_sheet2 LIKE TABLE OF gs_excel_sheet2.FIELD-SYMBOLS <ft_excel> TYPE STANDARD TABLE.
FIELD-SYMBOLS <fs_excel> TYPE ANY.DATA:lr_excel TYPE REF TO zcl_tab_doc.
DATA lt_files TYPE filetable.
DATA l_rc TYPE i.
DATA l_filename TYPE string.DATA: zcl_tab_doc TYPE REF TO zcl_tab_doc.DATA lt_sheetname TYPE zcl_tab_doc=>tt_sheetname_info."存放了如何输入excel的信息
DATA ls_sheetname LIKE LINE OF lt_sheetname.DATA: lr_functions TYPE REF TO cl_salv_functions_list.DATA lt_tabc TYPE zcl_tab_doc=>tt_tabc."存放获取sheet页的数据DATA l_text TYPE string.PARAMETERS p_file TYPE rlgrap-filename OBLIGATORY MEMORY ID mi.AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.DATA ls_files LIKE LINE OF lt_files.CALL METHOD zcl_tab_doc=>file_open_dialog_defaultCHANGINGct_file_table           = lt_filesc_rc                    = l_rcEXCEPTIONSfile_open_dialog_failed = 1cntl_error              = 2error_no_gui            = 3not_support_by_gui      = 4OTHERS                  = 5.READ TABLE lt_files INTO ls_files INDEX 1.IF sy-subrc EQ 0.p_file = ls_files-filename.ENDIF.START-OF-SELECTION.l_text = 'loading'.CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'EXPORTING
*      percentage = 99            "进度text       = l_text.**********************************************************************" 动态内表TYPE-POOLS:abap.*  DATA lt_table TYPE TABLE OF dfies. "字段结构表
*  DATA ls_table TYPE dfies.DATA lr_struc TYPE REF TO cl_abap_structdescr.DATA lr_table TYPE REF TO cl_abap_tabledescr.DATA lr_type TYPE REF TO cl_abap_typedescr.DATA lr_data TYPE REF TO cl_abap_datadescr.DATA lt_comp TYPE abap_component_tab.DATA ls_comp LIKE LINE OF lt_comp.DATA dyn_wa TYPE REF TO data.DATA dyn_table TYPE REF TO data.DATA dyn_excel TYPE REF TO data.DATA dyn_excel_wa TYPE REF TO data.DATA l_string TYPE string.FIELD-SYMBOLS: <dyn_table> TYPE STANDARD TABLE,<dyn_wa> TYPE ANY.DATA tabname TYPE tabname.DATA fieldname TYPE fieldname.DATA fieldname_tmp TYPE fieldname.DATA number_n(3) TYPE n.tabname = 'lt_excel'.fieldname = 'filed'.number_n = 0.*  lo_elem ?= cl_abap_typedescr=>describe_by_name( 'string' ).DO 100 TIMES.number_n = number_n + 1.CLEAR fieldname_tmp.CONCATENATE fieldname number_n INTO fieldname_tmp.CONCATENATE tabname '-' fieldname_tmp INTO l_string.ls_comp-name = fieldname_tmp.ls_comp-type ?= cl_abap_typedescr=>describe_by_name( 'string' )."lo_elem.APPEND ls_comp TO lt_comp.CLEAR ls_comp.ENDDO.
*根据字段目录创建动态结构类型CALL METHOD cl_abap_structdescr=>createEXPORTINGp_components = lt_compRECEIVINGp_result     = lr_struc.
*根据动态结构创建动态内表类型CALL METHOD cl_abap_tabledescr=>createEXPORTINGp_line_type = lr_strucRECEIVINGp_result    = lr_table.
*参照动态结构类型和动态内表类型创建内表与工作区CREATE DATA dyn_wa TYPE HANDLE lr_struc.CREATE DATA dyn_table TYPE HANDLE lr_table.CREATE DATA dyn_excel_wa TYPE HANDLE lr_struc.CREATE DATA dyn_excel TYPE HANDLE lr_table.
*指定内表与工作区到字段符号ASSIGN dyn_wa->* TO <dyn_wa>.ASSIGN dyn_table->* TO <dyn_table>.ASSIGN dyn_excel_wa->* TO <fs_excel>.ASSIGN dyn_excel->* TO <ft_excel>.**********************************************************************REFRESH lt_sheetname.
*  CLEAR ls_sheetname.
**  ls_sheetname-sheetname = 'Sheet1'.
*  ls_sheetname-startrow = 2.
*  ls_sheetname-startcol = 1.
*  ls_sheetname-every_copy_lines = 30.
*  ls_sheetname-endcol = 4.
*  APPEND ls_sheetname TO lt_sheetname.
*
*  CLEAR ls_sheetname.
**  ls_sheetname-sheetname = 'Sheet2'.
*  ls_sheetname-startrow = 2.
*  ls_sheetname-startcol = 1.
*  ls_sheetname-every_copy_lines = 30.
*  ls_sheetname-endcol = 4.
*  APPEND ls_sheetname TO lt_sheetname.*  lt_sheetname = value #(
*  ( sheetname = 'Sheet1'
*    STARTROW  = 2
*    startcol  = 1
*    EVERY_COPY_LINES = 30
*    endcol = 4
*  )
*  ( SHEETNAME = 'Sheet2'
*    startrow  = 2
*    STARTCOL  = 1
*    every_copy_lines = 30
*    ENDCOL = 2
*  )
*  ).CREATE OBJECT lr_excel.l_filename = p_file.CALL METHOD lr_excel->import_excel_by_oleEXPORTINGi_filename      = l_filenameCHANGINGct_sheetname    = lt_sheetnamect_tabc         = lt_tabcEXCEPTIONSfile_open_error = 1OTHERS          = 2.IF sy-subrc <> 0.MESSAGE e398(00) WITH 'file opened failed!'.
*    MESSAGE e398(00) WITH |file opened failed!| ''.ENDIF.CHECK lt_tabc[] IS NOT INITIAL.DATA ls_tabc LIKE LINE OF lt_tabc.DATA l_tabix TYPE i.REFRESH gt_excel.LOOP AT lt_tabc INTO ls_tabc.l_tabix = sy-tabix.REFRESH t_sheet.CALL METHOD lr_excel->excel_convert_tableEXPORTING
*       i_separator            = CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TABis_table               = ls_tabci_repid                = sy-repidi_special_process      = 'FRM_SPECIAL_PROCESS'CHANGINGct_table               = t_sheetEXCEPTIONScontext_convert_failed = 1OTHERS                 = 2.IF sy-subrc <> 0.MESSAGE e398(00) WITH 'Context converted failed!' ''.ELSE.CLEAR gs_excel.gs_excel-sheet_num = l_tabix.gs_excel-sheet[] = t_sheet[].APPEND gs_excel TO gt_excel.ENDIF.ENDLOOP.DATA cl_descr TYPE REF TO cl_abap_structdescr.FIELD-SYMBOLS <fs_comp> TYPE abap_compdescr.FIELD-SYMBOLS <value1> TYPE ANY.FIELD-SYMBOLS <value2> TYPE ANY.DATA l_index TYPE i.DATA p TYPE i.DATA q TYPE i.DATA sttime LIKE sy-uzeit.DATA entime LIKE sy-uzeit.DATA sptime TYPE i.GET TIME.sttime = sy-uzeit.l_text = 'loading/'." 导出CREATE OBJECT excel 'Excel.Application'.CALL METHOD OF excel 'Workbooks' = workbooks.CALL METHOD OF workbooks 'Open' = workbooksEXPORTING#1 = p_file.LOOP AT gt_excel INTO gs_excel.CALL METHOD OF excel 'Worksheets' = sheetEXPORTING #1 = gs_excel-sheet_num.CALL METHOD OF sheet 'ACTIVATE'.CLEAR l_tabix.LOOP AT gs_excel-sheet INTO w_sheet.l_tabix = sy-tabix.IF l_tabix > 2.DO 50 TIMES.IF sy-index > 1.p = sy-index.q = p MOD 2.IF q NE 0.UNASSIGN: <value1>,<value2>.l_index = sy-index - 1.ASSIGN COMPONENT l_index OF STRUCTURE w_sheet TO <value1>.ASSIGN COMPONENT sy-index OF STRUCTURE w_sheet TO <value2>.IF <value1> IS NOT INITIAL.<value2> = 'TEST'.PERFORM fill_cell USING l_tabix sy-index <value2>.GET TIME.entime = sy-uzeit.sptime = entime - sttime.IF sptime >= 1.IF l_text = 'loading--'.l_text = 'loading\'.ELSEIF l_text = 'loading\'.l_text = 'loading |'.ELSEIF l_text = 'loading |'.l_text = 'loading/'.ELSEIF l_text = 'loading/'.l_text = 'loading--'.ENDIF.CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'EXPORTING
*      percentage = 99            "进度text       = l_text.sttime = entime.ENDIF.ENDIF.ENDIF.ENDIF.ENDDO.ENDIF.ENDLOOP.ENDLOOP.SET PROPERTY OF excel 'Visible' = 1.SET PROPERTY OF excel  'screenupdating'  = 1.MESSAGE '导出成功' TYPE 'S'.EXIT.*  READ TABLE lt_tabc INTO ls_tabc WITH KEY sheetname = 'Sheet1'.
*  IF sy-subrc EQ 0.
*    CALL METHOD lr_excel->excel_convert_table
*      EXPORTING
**       i_separator            = CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB
*        is_table               = ls_tabc
*        i_repid                = 'Z_TAB_TEST04'
*        i_special_process      = 'FRM_SPECIAL_PROCESS'
*      CHANGING
*        ct_table               = gt_excel_sheet1
*      EXCEPTIONS
*        context_convert_failed = 1
*        OTHERS                 = 2.
*    IF sy-subrc <> 0.
*      MESSAGE e398(00) WITH 'Context converted failed!' ''.
*    ENDIF.
*  ENDIF.
*
*  CHECK gt_excel_sheet1[] IS NOT INITIAL.
*
*  READ TABLE lt_tabc INTO ls_tabc WITH KEY sheetname = 'Sheet2'.
*  IF sy-subrc EQ 0.
*    CALL METHOD lr_excel->excel_convert_table
*      EXPORTING
**       i_separator            = CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB
*        is_table               = ls_tabc
*        i_repid                = 'Z_TAB_TEST04'
*        i_special_process      = 'FRM_SPECIAL_PROCESS'
*      CHANGING
*        ct_table               = gt_excel_sheet2
*      EXCEPTIONS
*        context_convert_failed = 1
*        OTHERS                 = 2.
*    IF sy-subrc <> 0.
*      MESSAGE e398(00) WITH 'Context converted failed!' ''.
*    ENDIF.
*  ENDIF.*  SORT gt_excel_sheet2 BY matnr.
*
*  LOOP AT gt_excel_sheet1 INTO gs_excel_sheet1.
*    READ TABLE gt_excel_sheet2 INTO gs_excel_sheet2 WITH KEY matnr = gs_excel_sheet1-matnr BINARY SEARCH.
*    IF sy-subrc EQ 0.
*      gs_excel-maktx = gs_excel_sheet2-maktx.
*    ENDIF.
*    MOVE-CORRESPONDING gs_excel_sheet1 TO gs_excel.
*    APPEND gs_excel TO gt_excel.
*    CLEAR gs_excel.
*  ENDLOOP.DATA go_alv TYPE REF TO cl_salv_table.TRY.cl_salv_table=>factory(IMPORTINGr_salv_table = go_alvCHANGINGt_table      = <ft_excel>[] ).CATCH cx_salv_msg.ENDTRY.lr_functions = go_alv->get_functions( ).lr_functions->set_all( 'X' ).CHECK go_alv IS BOUND.go_alv->display( ).*&---------------------------------------------------------------------*
*&      Form  frm_special_process
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->IS_COMPONET  text
*      -->I_ROW        text
*      -->I_COL        text
*      <--C_CELL       text
*----------------------------------------------------------------------*
FORM frm_special_process USINGis_componet TYPE abap_compdescri_row TYPE ii_col TYPE iCHANGINGc_cell TYPE string.DATA lv_matnr TYPE mara-matnr.CHECK c_cell IS NOT INITIAL.
*  CASE i_col.
*    WHEN '1'.
*      "内外部转化
*      lv_matnr = c_cell.
*      CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
*        EXPORTING
*          input        = lv_matnr
*        IMPORTING
*          output       = lv_matnr
*        EXCEPTIONS
*          length_error = 1
*          OTHERS       = 2.
*      IF sy-subrc <> 0.
*        CLEAR lv_matnr.
*      ENDIF.
*      c_cell = lv_matnr.
*    WHEN '2'.
*      CHECK is_componet-name = 'MEINS'."转化单位
*      CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
*        EXPORTING
*          input          = c_cell
*          language       = sy-langu
*        IMPORTING
*          output         = c_cell
*        EXCEPTIONS
*          unit_not_found = 1
*          OTHERS         = 2.
*      IF sy-subrc <> 0.
*        MESSAGE e398(00) WITH 'unit convert failed!|'.
**        MESSAGE e398(00) WITH |unit convert failed!| ''.
*      ENDIF.
*    WHEN '3'.
*      DATA: lt_cell LIKE TABLE OF c_cell WITH HEADER LINE.
*      DATA: ls_cell LIKE LINE OF lt_cell.
*
*      "日期转换
*      DATA l_num2(2) TYPE n.
*      SPLIT c_cell AT '/' INTO TABLE lt_cell.
*      CLEAR c_cell.
*      LOOP AT lt_cell INTO ls_cell.
*        CASE sy-tabix.
*          WHEN 1.
*            c_cell = ls_cell.
*          WHEN 2 OR 3.
*            l_num2 = ls_cell.
**            c_cell = |{ C_CELL }{ L_NUM2 }|.
*            CONCATENATE c_cell l_num2 INTO c_cell.
*          WHEN OTHERS.
*        ENDCASE.
*      ENDLOOP.
*      REPLACE ALL OCCURRENCES OF '-' IN c_cell WITH ''.
*      REPLACE ALL OCCURRENCES OF '/' IN c_cell WITH ''.
*      CONDENSE c_cell NO-GAPS.
*    WHEN '4'.
*      "时间转换
*      REPLACE ALL OCCURRENCES OF ':' IN c_cell WITH ''.
*      CONDENSE c_cell NO-GAPS.
*    WHEN OTHERS.
*  ENDCASE.
ENDFORM.                    "frm_special_process
*&---------------------------------------------------------------------*
*&      Form  fill_cell
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_I        text
*      -->P_J        text
*      -->P_VAL      text
*----------------------------------------------------------------------*
FORM fill_cell USING    p_ip_jp_val.CALL METHOD OF excel 'CELLS' = cellEXPORTING #1 = p_i #2 = p_j.SET PROPERTY OF cell 'VALUE' = p_val.
ENDFORM.                    "fill_cell

相关文章:

【ABAP】ole2 excel多sheet导入导出

原理就不分享了 原来是用了动态表格&#xff0c;但是要导出不方便&#xff0c;所以就写死了&#xff0c;excel多sheet导入的类放在另一篇文章里 REPORT zcdemo17. INCLUDE ole2incl.DATA: excel TYPE ole2_object,workbooks TYPE ole2_object,workbook TYPE ole2_object…...

图像配准-小结

图像配准&#xff1a;找到一对图像间的几何变换关系&#xff0c;并且将待配准图像根据几何变换关系对齐到参考图像上&#xff0c;从而为图像融合、变化检测/监测提供基础。图像匹配&#xff0c;在某些语境中可能与上面的图像配准指的是一个东西&#xff0c;而在某些语境中可能指…...

【2025】基于Python的空气质量综合分析系统的设计与实现(源码+文档+调试+答疑)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…...

计算机基础知识-2

x86架构的寄存器 AT&T汇编和Intel汇编的区别 每取出完一条指令&#xff0c;PC会自动&#xff0b;"1"&#xff0c;指向下一条要被执行的指令。这里的1是指下一条指令&#xff0c;但是指令本身可能占用多个字节&#xff0c;所以地址可能不是以1叠加 当前执行的是10…...

Ubuntu2204配置连续失败后账户锁定

配置启用pam_faillock sudo nano /etc/pam.d/common-auth在最上面添加以下内容 auth required pam_faillock.so preauth silent audit auth sufficient pam_unix.so nullok try_first_pass auth [defaultdie] pam_faillock.so authfail auditsudo nano /etc/pam.d/…...

windows下安装elasticSearch和kibana

下载es 下载地址官网 下载后是个压缩包(elasticsearch-8.15.0-windows-x86_64)&#xff0c;解压即可 启动 配置 改一下 /conf/jvm.options文件&#xff0c;最后加一行编码配置&#xff0c;这个是为了启动后防止控制台乱码 -Dfile.encodingGBK启动es 依赖jdk8环境&#xf…...

Java-IDEA模拟一个Redis服务器,与Redis客户端进行一次简单的交互。默认端口号:6379

首先要了解Redis的交互协议。 摘抄&#xff1a; 简单字符串&#xff08;Simple Strings&#xff09;: 以 “” 开头&#xff0c;例如 “OK\r\n” 表示一个成功的响应。错误&#xff08;Errors&#xff09;: 以 “-” 开头&#xff0c;例如 “-ERR unknown command\r\n” 表示一…...

WEB服务与虚拟主机/IIS中间件部署

WWW&#xff08;庞大的信息系统&#xff09;是基于客户机/服务器⽅式的信息发现技术和超⽂本技术的综合。网页浏览器//网页服务器 WWW的构建基于三项核⼼技术&#xff1a; HTTP&#xff1a;超文本传输协议&#xff0c;⽤于在Web服务器和客户端之间传输数据。HTML&#xff1a;⽤…...

JAVA开源项目 图书个性化推荐系统 计算机毕业设计

本文项目编号 T 015 &#xff0c;文末自助获取源码 \color{red}{T015&#xff0c;文末自助获取源码} T015&#xff0c;文末自助获取源码 目录 一、系统介绍1.1 业务分析1.2 用例设计1.3 时序设计 二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究…...

Spring Boot 注解探秘:HTTP 请求的魅力之旅

在SpringBoot应用开发中&#xff0c;处理Http请求是一项基础且重要的任务。Spring Boot通过提供一系列丰富的注解极大地简化了这一过程&#xff0c;使得定义请求处理器和路由变得更加直观与便捷。这些注解不仅帮助开发者清晰地定义不同类型的HTTP请求如何被处理&#xff0c;同时…...

TYPE-C USB设计

目录 摘要 TYPE-C电路 握手过程 USB电路 摘要 TYPE-C,是USB的一种接口&#xff0c;USB的第一种接口为常见的USB接口&#xff0c;U盘即为这种接口&#xff1b;第二种接口的形状类似一个凸字&#xff0c;常应用在打印机中&#xff0c;第三种接口即为TYPE-C&#xff0c;支持正…...

Python炒股自动化,怎样理解股票交易性质

炒股自动化&#xff1a;申请官方API接口&#xff0c;散户也可以 python炒股自动化&#xff08;0&#xff09;&#xff0c;申请券商API接口 python炒股自动化&#xff08;1&#xff09;&#xff0c;量化交易接口区别 Python炒股自动化&#xff08;2&#xff09;&#xff1a;获取…...

Vue2 day-02

目录 一. Vue脚手架(Vue CLI) 1.1 安装新版本的Vue脚手架vue/cli 1.2 用命令创建Vue项目 1.2.1 命令创建vue项目 1.2.2 默认创建 1.2.3 自定义创建 1.2.4 基于ui界面创建Vue项目 1.3 分析Vue脚手架生成的项目结构及代码执行 1.3.1 默认创建文件结构 1.3.2 分开放置文…...

什么?!新版 Node.js V22.5 自带 SQLite 模块啦

前言 2024年7月&#xff0c;Node.js V22.5.0 版本发布&#xff0c;自带了 SQLite 模块&#xff0c;意味着开发者可以直接在程序中使用 SQLite 数据库&#xff0c;而无需引入第三方库&#x1f44d;。 话不多说&#xff0c;感觉来体验一波✈。 安装/升级 我现在用的是21.4.0版…...

Maven持续集成(Continuous integration,简称CI)版本友好管理

从Maven 3.5.0-beta-1 版本开始可以在pom文件中使用 r e v i s i o n 、 {revision}、 revision、{sha1}、${changelist}做为版本的占位符。 一、单module简单使用${revision}的场景 <project><modelVersion>4.0.0</modelVersion><parent><groupId…...

EvoSuite使用总结

1.安装EvoSuite插件 以IDEA为例&#xff0c;在Plugins栏搜索EvoSuite后点击install&#xff0c;安装完成后重启IDEA 2.使用EvoSuite 选中文件右键选择Run EvoSuite 生成成功可以看到如下提示&#xff1a; 注意事项&#xff1a; 生成路径&#xff1a;src/test/java 使用juni…...

Cortex-A7:简单中断处理(不可嵌套中断)机制

0 参考资料 ARM Cortex-A(armV7)编程手册V4.0.pdf ARM体系结构与编程第2版1 前言 Cortex-M系列内核MCU中断硬件原生支持嵌套中断&#xff0c;开发者不需要为了实现嵌套中断而进行额外的工作。但在Cortex-A7中&#xff0c;硬件原生是不支持嵌套中断的&#xff0c;这从Cortex-A…...

k8s HPA

水平自动扩容和缩容HPA HPA全称Horizontal Pod Autoscaler&#xff0c;即pod水平自动伸缩。HPA可以基于CPU利用率对replication controller、deployment和replicaset中的pod数量进行自动扩缩容&#xff08;除了CPU利用率&#xff0c;也可以基于其他应用程序提供的度量指标cust…...

5G移动网络运维实验(训)室解决方案

随着第五代移动通信技术&#xff08;5G&#xff09;的快速普及和工业互联网的迅猛发展&#xff0c;全球制造业正面临着前所未有的深刻变革。5G技术凭借其超高的传输速率、极低的延迟以及大规模的连接能力&#xff0c;为工业自动化、智能制造等领域带来了革命性的技术支持。为了…...

单片机学习笔记

一、单片机帝国的诞生与发展 1.1 单片机的基本概念 单片机是一种集成电路芯片&#xff0c;采用超大规模的集成电路把具有数据处理功能的中央处理器存储器、输入输出端口、外围电路和相关外设集成在一块硅片上构成一个小而完整的微型计算机系统。 一般而言&#xff0c;单片机也…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...