乐于分享
好东西不私藏

使用 XCO Excel API(xco_cp_xlsx)处理 Excel 的新方式

使用 XCO Excel API(xco_cp_xlsx)处理 Excel 的新方式

使用 XCO Excel API(xco_cp_xlsx)处理 Excel 的新方式

背景:从 abap2xlsx 到 XCO

在 ABAP Cloud(Steampunk / S/4HANA Cloud Developer Extensibility)出现之前,处理 Excel 文件几乎都依赖开源项目 abap2xlsx,或者 cl_fdt_xl_spreadsheet 这类老接口。但前者尚未 100% 兼容 ABAP Cloud(在经典 ABAP 中可以很好地使用),后者没有被 Released(不能在 ABAP for Cloud Development 中使用)。

为解决这个痛点,SAP 在 XCO 库(Extension Components Library) 中新增了一个 XLSX 模块,对应入口类是 XCO_CP_XLSX。它是 SAP 官方提供、已 Released 的标准 API,可在 ABAP Cloud / 经典 ABAP 中直接使用,无需任何开源依赖。

支持版本(具体从什么时候开始才有)

读、写、设计三类能力是分阶段交付的,这是升级时最需要确认的版本门槛:

能力
首次可用版本
说明
XLSX 读 (Read Access)
SAP BTP ABAP Environment 2208
XCO 库首次新增 XLSX 模块,可编程读取 XLSX 工作簿与工作表
XLSX 写 (Write Access)
SAP BTP ABAP Environment 2308
在 2308 release 中作为 XCO 库增强项交付,开始支持创建/写入 XLSX
设计/格式化(颜色、保护、数据校验等)
ABAP Environment 2411
从 2411 起可在 BTP 中对 Excel 文档进行样式设计(表头背景色、单元格保护、下拉校验等)

补充说明:

  • XCO 库本身(非 XLSX 模块)更早就存在了 —— XCO 库最初在 SAP BTP ABAP Environment 2005 引入。

  • 由于读和写交付时间不同,只升级到 2208 的系统只能读、不能写,写功能必须 2308 及以上,设计/样式必须 2411 及以上。

On-Premise / S/4HANA Private Edition 的说明

上面给出的 2208 / 2308 / 2411 是 SAP BTP ABAP Environment(公有云 Steampunk) 的版本节奏。On-Premise 与 Private Edition 走的是 S/4HANA 大版本 + SP 的节奏,对应关系不是一一对照的,因此最可靠的判断方式是直接到系统里看XCO_CP_XLSX这个类本身

  • 先确认类是否存在且已激活:在 ADT 或 SE24 打开 XCO_CP_XLSX,看到它已实现/已激活,就说明 XLSX 模块已经在你的系统里了。

    • 该类属于标准包 S_XCO_CP_XLSX_API

    • 类的创建/最后更改日期约在 2022.05,这正好对应 BTP 2208 的开发窗口,所以一个 2022 年及以后基线的 On-Premise/Private Edition 系统通常都已包含读能力。

    • 类的 ABAP 语言版本是Standard ABAP,意味着在 On-Premise 里它既可用于经典 ABAP,也可用于 ABAP Cloud(语言版本不受限)。

  • 再确认具体能力(关键):类存在 ≠ 所有功能都齐。读、写、设计是分批交付的,要按方法/接口实际是否存在来判断

    • :能 for_file_content( ... )->read_access( ) 即可用(最早随类一起提供)。

    • :检查 write_access( )empty( )row_stream( )->operation->write_from( )get_file_content( ) 是否存在 —— 对应 BTP 2308 那批增强,On-Premise 需相应 SP。

    • 设计/样式:检查 cursor( )->get_cell( )->apply_styles( )xco_cp_xlsx=>style->fill( )protect( )data_validation_type 等是否存在 —— 对应 BTP 2411 那批,On-Premise 需更高 SP。

  • 结论:在系统里看到XCO_CP_XLSX已激活,至少代表读能力可用;写与设计能力请用上面的方法/接口逐一确认,不要仅凭类存在就假定全部可用。

核心概念

XCO_CP_XLSX 采用分层、链式调用的 API 设计:

  • document — 文档入口,可从文件内容(XSTRING)打开(for_file_content),或创建空文档(empty)。

  • read_access( ) / write_access( ) — 切换读模式或写模式。

  • get_workbook( ) → worksheetfor_name / at_position / all)— 访问工作簿与工作表。

  • 选择区域用 xco_cp_xlsx_selection=>pattern_builder->simple_from_to( ) 构造 pattern

  • 数据访问主要有两种方式:

    • Row Stream(按内表整块读写,覆盖最常见场景) —— select( pattern )->row_stream( )->operation->write_to( ) / write_from( )

    • Cursor(按 Visitor 模式动态读写单个单元格) —— cursor( )->get_cell( ),用于设计/样式。


样例一:读取 Excel(Read Access,2208+)

" ld_stream 是 XSTRING 格式的 Excel 文件内容" (通常来自 RAP OData stream / Large Object 上传)DATA(lo_document) = xco_cp_xlsx=>document->for_file_content( ld_stream )->read_access( )." 遍历所有工作表LOOPAT lo_document->get_workbook( )->worksheet->all->get( ) INTODATA(lo_sheet).  out->write( lo_sheet->get_name( ) ).ENDLOOP." 取指定工作表,并先检查是否存在DATA(lo_users) = lo_document->get_workbook( )->worksheet->for_name( 'Users' ).IFNOT lo_users->exists( ).  out->write( |Sheet notfound| ).RETURN.ENDIF." 定义与 Excel 列结构匹配的内表TYPESBEGINOF ts_users,         user_id   TYPE string,         user_name TYPE string,         user_mail TYPE string,ENDOF ts_users.TYPES tt_users TYPESTANDARDTABLEOF ts_users WITH EMPTY KEY.DATA lt_users TYPE tt_users." 全量读取:用默认 pattern(不带坐标)DATA(lo_pattern) = xco_cp_xlsx_selection=>pattern_builder->simple_from_to( )->get_pattern( ).DATA(lo_result) = lo_users->select( lo_pattern  )->row_stream(  )->operation->write_to( REF #( lt_users )  )->set_value_transformation( xco_cp_xlsx_read_access=>value_transformation->string_value  )->execute( )." 检查读取结果IF lo_result->succeeded = abap_false.LOOPAT lo_result->messagesINTODATA(lo_message)." 处理错误消息ENDLOOP.ENDIF.

要点:因为读出包含表头行,可在读完后剔除首行,或用它来对齐字段。

读取指定区域(range)

" 只读 B 到 C 列,从第 2 行开始(跳过表头)DATA(lo_pattern) = xco_cp_xlsx_selection=>pattern_builder->simple_from_to(  )->from_column( xco_cp_xlsx=>coordinate->for_alphabetic_value( 'B' )  )->to_column(   xco_cp_xlsx=>coordinate->for_alphabetic_value( 'C' )  )->from_row(    xco_cp_xlsx=>coordinate->for_numeric_value( 2 )  )->get_pattern( ).

注意:当前在按区域读取时,存在一个已知现象 —— 为保证结果落入正确列,结构里有时需要在前面加一个 dummy(被跳过的)占位列,否则最后一列可能被反复覆盖。


样例二:写入并创建 Excel(Write Access,2308+)

" 准备数据,第一行作为列标题(标题不能单独创建,需作为数据写入)DATA(lt_users) = VALUE tt_users(  ( user_id = 'User ID' user_name = 'First Name' user_mail = 'Mail address' )  ( user_id = '04567'   user_name = 'Chuck'      user_mail = 'chuck@outlook.com' )  ( user_id = '12541'   user_name = 'Terence'    user_mail = 'terence@outlook.com' )  ( user_id = '24470'   user_name = 'Emily'      user_mail = 'emily@outlook.com' ) )." 1. 创建空文档并进入写模式DATA(lo_document) = xco_cp_xlsx=>document->empty( )->write_access( )." 2. 新增工作表并取得它(空文档已自带 1 个 sheet,所以新表在 position 2)lo_document->get_workbook( )->add_new_sheet( `Made with ABAP` ).DATA(lo_sheet) = lo_document->get_workbook( )->worksheet->at_position( 2 )." 3. 从 A1 开始整块写入内表DATA(lo_pattern) = xco_cp_xlsx_selection=>pattern_builder->simple_from_to( )->get_pattern( ).lo_sheet->select( lo_pattern  )->row_stream(  )->operation->write_from( REF #( lt_users )  )->execute( )." 4. 导出为 XSTRING(二进制 Excel 内容)DATA(ld_excel) = lo_document->get_file_content( ).

作为邮件附件发送(配合 CL_BCS_MAIL_*)

DATA(lo_mail) = cl_bcs_mail_message=>create_instance( ).lo_mail->set_sender( c_sender ).lo_mail->add_recipient( c_receiver ).lo_mail->set_subject( 'New Excel File' ).lo_mail->set_main( cl_bcs_mail_textpart=>create_instance(                     iv_content      = '<h1>Hello,</h1><p>here your fresh printed Excel File</p>'                     iv_content_type = 'text/html' ) ).lo_mail->add_attachment(    cl_bcs_mail_binarypart=>create_instance(        iv_content      = ld_excel        iv_content_type = `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`        iv_filename     = `My-generated-Excel.xlsx` ) ).lo_mail->send( ).

样例三:设计与格式化(2411+)

从 2411 起,可对生成的 Excel 设置颜色、保护、数据校验。以下方法接收一个工作表对象 io_sheet(类型 if_xco_xlsx_wa_worksheet)。

表头上色

TYPES to_color TYPEREFTO cl_xco_xlsx_color.DATA lt_color TYPESTANDARDTABLEOF to_color WITH EMPTY KEY.lt_color = VALUE #( ( xco_cp_xlsx=>color->standard->blue )                    ( xco_cp_xlsx=>color->standard->light_blue )                    ( xco_cp_xlsx=>color->standard->orange ) )." 把游标定位到 A1DATA(lo_cursor) = io_sheet->cursor( io_column = xco_cp_xlsx=>coordinate->for_alphabetic_value( 'A' )                                    io_row    = xco_cp_xlsx=>coordinate->for_numeric_value( 1 ) ).LOOPAT lt_color INTODATA(lo_color).DATA(lo_cell) = lo_cursor->get_cell( ).  lo_cell->apply_styles( VALUE #( ( xco_cp_xlsx=>style->fill( )->set_background_color( lo_color ) ) ) ).  lo_cursor->move_right( ).ENDLOOP.

工作表保护

io_sheet->protect( )->set_select_locked_cells( ).

数据校验(下拉列表)+ 解锁单元格

lo_cursor = io_sheet->cursor( io_column = xco_cp_xlsx=>coordinate->for_alphabetic_value( 'B' )                              io_row    = xco_cp_xlsx=>coordinate->for_numeric_value( 2 ) ).DATA(lo_validation) = xco_cp_xlsx=>data_validation_type->if_xco_xlsx_dat_val_type_f~list(  )->add_source( `Chuck`  )->add_source( `Terence`  )->add_source( `Emily`  )->add_source( `Bob` ).DO3TIMES.  lo_cell = lo_cursor->get_cell( ).  lo_cell->data_validation->set_type( lo_validation ).  lo_cell->apply_styles( VALUE #( ( xco_cp_xlsx=>style->protection( )->set_locked( abap_false ) ) ) ).  lo_cursor->move_down( ).ENDDO.

典型使用流程(RAP 场景)

最常见的端到端场景:用户在 Fiori 上传 Excel → 入库 → 处理 → 生成新 Excel 下载/邮件。

  1. 上传:用 RAP OData stream(Large Object / MIME)把 .xlsx 二进制存为 XSTRING。

  2. 读取xco_cp_xlsx=>document->for_file_content( ... )->read_access( ),用 row stream 写入内表。

  3. 处理:在内表上做业务逻辑(校验、创建/更新 RAP BO 记录等)。

  4. 写出->empty( )->write_access( ) 创建新文档,write_from( ) 写回,可选 2411+ 的设计能力,get_file_content( ) 拿到 XSTRING。

  5. 交付:通过 CL_BCS_MAIL_* 发邮件,或通过 OData stream 提供下载。

小结

  • XCO_CP_XLSX 是 SAP 官方、已 Released、Cloud-Ready 的标准 Excel 处理 API,在 Cloud 场景中取代 abap2xlsx 的角色。

  •  从 2208 开始可用, 从 2308 开始可用,设计/格式化 从 2411 开始可用。

  • API 仍在持续演进,后续会有更多格式化选项;如需更丰富的功能(复杂样式、超大文件),可结合经典 ABAP 中的 abap2xlsx。

  • On-Premise / Private Edition 不与 BTP 版本号一一对应,请以系统中 XCO_CP_XLSX 类是否激活、以及对应方法(write_accessapply_styles 等)是否存在为最终依据。该类属标准包 S_XCO_CP_XLSX_API、语言版本为 Standard ABAP,约 2022.05 创建。

老周的公众号AI回复偷偷升级啦!

是 #老周 ,如果你喜欢我的文字,请记得点击⬇️关注 #曰天曰地

码字不易,文章下拉,右边点个【赞】和【在看】吧!!

猜您还喜欢合集:

#曰天曰地#老周 #解决方案 #SAP优化 #SAPNote #ABAP新语法 #ABAP #SAP 

解决方案

SAP优化

ABAP新语法

SAP Note

SAP

ABAP

懒人鱼

猜您还喜欢文章:

聊聊ABAP动态编程

SAP这样优化:乙方开心,甲方放心!

浅谈SAP/SSO介绍及应用

浅谈SAP/ 文档管理解决方案

浅谈SAP/某化学纤维行业客户-优化案例

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-29 06:57:56 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/680845.html
  2. 运行时间 : 0.135955s [ 吞吐率:7.36req/s ] 内存消耗:4,808.76kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=6ee684acfaed6719aafb18edc0ecce78
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000600s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000880s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000372s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000313s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000745s ]
  6. SELECT * FROM `set` [ RunTime:0.000250s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000777s ]
  8. SELECT * FROM `article` WHERE `id` = 680845 LIMIT 1 [ RunTime:0.002499s ]
  9. UPDATE `article` SET `lasttime` = 1780009076 WHERE `id` = 680845 [ RunTime:0.004503s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000304s ]
  11. SELECT * FROM `article` WHERE `id` < 680845 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000590s ]
  12. SELECT * FROM `article` WHERE `id` > 680845 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001142s ]
  13. SELECT * FROM `article` WHERE `id` < 680845 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000963s ]
  14. SELECT * FROM `article` WHERE `id` < 680845 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.003254s ]
  15. SELECT * FROM `article` WHERE `id` < 680845 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.006747s ]
0.137794s