当前位置:首页>PPT>第164讲:自动创建产品介绍PPT:VBA与Python实战详解,轻松应对上百款新品上架

第164讲:自动创建产品介绍PPT:VBA与Python实战详解,轻松应对上百款新品上架

  • 2026-03-23 15:35:30
第164讲:自动创建产品介绍PPT:VBA与Python实战详解,轻松应对上百款新品上架

电商运营中,新品上架意味着需要为每个产品制作介绍PPT。手动操作耗时耗力,且容易出错。本文将详细介绍如何通过VBA和Python实现自动化生成,提升效率降低错误率

一、业务背景与自动化需求

在电商运营中,新品上架是常态。每个新产品都需要制作介绍PPT,用于内部培训营销推广客户展示。传统手工制作方式效率低下一致性差,且容易出错

电商企业通常面临以下痛点

  • 产品数量多:每月上百款新品需要制作PPT

  • 信息更新频繁价格库存描述等信息经常变动

  • 格式要求统一品牌标识字体色彩需要保持一致

  • 时间紧迫营销活动往往要求快速上架新品

自动化生成PPT的价值

  • 效率提升:从数小时缩短到几分钟

  • 一致性保证:统一的版式风格

  • 错误减少自动化数据填充降低人为错误

  • 易于更新数据驱动,修改源头数据即可更新所有PPT

二、VBA方案:Office原生自动化解决方案

VBA作为Microsoft Office的原生脚本语言,提供了深度集成的PPT自动化能力。

2.1 环境准备与基础设置

VBA开发环境配置

' 开启VBA开发环境1. 打开PowerPoint,按Alt+F11进入VBA编辑器' 2. 插入模块,开始编写代码Sub EnableVBAEnvironment()    ' 设置VBA项目属性    ThisProject.Name = "PPT自动化生成"    ' 确保引用正确    Call CheckReferencesEnd SubSub CheckReferences()    ' 检查必要引用是否已加载    On Error Resume Next    Dim ref As Reference    For Each ref In ThisProject.References        If ref.Name = "Microsoft PowerPoint 16.0 Object Library" Then            Exit Sub        End If    Next ref    ' 如果没有找到引用,需要手动添加    MsgBox "请引用Microsoft PowerPoint对象库", vbInformationEnd Sub

2.2 核心代码实现

完整的VBA自动化生成模块

Sub GenerateProductPPT()    Dim pptApp As PowerPoint.Application    Dim pptPres As PowerPoint.Presentation    Dim pptSlide As PowerPoint.Slide    Dim productLayout As CustomLayout    Dim i As Integer    ' 错误处理    On Error GoTo ErrorHandler    ' 创建PowerPoint应用实例    Set pptApp = New PowerPoint.Application    pptApp.Visible = True  ' 设置为True可查看生成过程    ' 打开模板文件    Set pptPres = pptApp.Presentations.Open("C:\模板\产品介绍模板.pptx")    ' 获取产品布局    Set productLayout = pptPres.Designs(1).SlideMaster.CustomLayouts(1)    ' 读取产品数据    Dim productData As Variant    productData = GetProductDataFromExcel("C:\数据\产品清单.xlsx")    ' 循环生成每个产品的幻灯片    For i = 1 To UBound(productData, 1)        ' 创建新幻灯片        Set pptSlide = pptPres.Slides.AddSlide(pptPres.Slides.Count + 1, productLayout)        ' 填充内容        Call FillSlideContent(pptSlide, productData, i)    Next i    ' 保存演示文稿    pptPres.SaveAs "C:\输出\产品介绍_" & Format(Now(), "yyyy-mm-dd-hh-mm") & ".pptx"    MsgBox "PPT生成完成!共生成 " & UBound(productData, 1& " 个产品介绍。", vbInformation    Exit SubErrorHandler:    MsgBox "错误号: " & Err.Number & vbCrLf & "错误描述: " & Err.Description, vbCriticalEnd SubSub FillSlideContent(slide As PowerPoint.Slide, productData As Variant, index As Integer)    ' 填充幻灯片内容    Dim shape As shape    Dim productName As String    Dim productDesc As String    Dim imgPath As String    ' 获取产品信息    productName = productData(index, 1)  ' 产品名称    productDesc = productData(index, 2)  ' 产品描述    imgPath = productData(index, 3)      ' 图片路径    ' 遍历幻灯片中的所有形状,填充内容    For Each shape In slide.Shapes        Select Case shape.PlaceholderFormat.Type            Case ppPlaceholderTitle  ' 标题占位符                shape.TextFrame.TextRange.Text = productName            Case ppPlaceholderBody   ' 正文占位符                shape.TextFrame.TextRange.Text = productDesc            Case ppPlaceholderPicture  ' 图片占位符                If Dir(imgPath) <> "" Then  ' 检查图片文件是否存在                    slide.Shapes.AddPicture imgPath, msoFalse, msoTrue, shape.Left, shape.Top, shape.Width, shape.Height                    shape.Delete  ' 删除原始占位符                End If        End Select    Next shapeEnd SubFunction GetProductDataFromExcel(filePath As String) As Variant    ' 从Excel读取产品数据    Dim excelApp As Excel.Application    Dim excelWB As Excel.Workbook    Dim excelWS As Excel.Worksheet    Dim dataRange As Excel.Range    Dim productData As Variant    Set excelApp = New Excel.Application    excelApp.Visible = False  ' 隐藏Excel窗口    ' 打开工作簿    Set excelWB = excelApp.Workbooks.Open(filePath)    Set excelWS = excelWB.Sheets(1)    ' 获取数据范围    Set dataRange = excelWS.UsedRange    productData = dataRange.Value    ' 清理资源    excelWB.Close SaveChanges:=False    excelApp.Quit    GetProductDataFromExcel = productDataEnd Function

2.3 高级功能与错误处理

增强的VBA解决方案

Sub AdvancedProductPPTGenerator()    Dim pptApp As PowerPoint.Application    Dim pptPres As PowerPoint.Presentation    Dim successCount As Integer    Dim errorCount As Integer    Dim startTime As Double    Dim endTime As Double    ' 记录开始时间    startTime = Timer    On Error GoTo ErrorHandler    ' 初始化计数器    successCount = 0    errorCount = 0    Set pptApp = New PowerPoint.Application    pptApp.Visible = False  ' 后台运行,提升速度    ' 创建新演示文稿    Set pptPres = pptApp.Presentations.Add    ' 读取产品数据    Dim productList As Collection    Set productList = GetStructuredProductData("C:\数据\产品清单.xlsx")    ' 处理每个产品    Dim product As Variant    For Each product In productList        If GenerateSingleProductSlide(pptPres, product) Then            successCount = successCount + 1        Else            errorCount = errorCount + 1            ' 记录错误日志            Call LogError("产品处理失败: " & product("名称"))        End If    Next product    ' 应用设计模板    pptPres.ApplyTemplate "C:\模板\企业设计模板.potx"    ' 保存结果    Dim outputPath As String    outputPath = "C:\输出\产品介绍_批量生成.pptx"    pptPres.SaveAs outputPath    endTime = Timer    ' 生成报告    MsgBox "生成完成!" & vbCrLf & _           "成功: " & successCount & " 个" & vbCrLf & _           "失败: " & errorCount & " 个" & vbCrLf & _           "耗时: " & Format(endTime - startTime, "0.00") & " 秒", _           vbInformation    ' 清理资源    pptPres.Close    pptApp.Quit    Exit SubErrorHandler:    MsgBox "生成过程中出现错误: " & Err.Description, vbCriticalEnd Sub

三、Python方案:灵活强大的跨平台解决方案

Python凭借python-pptx库,提供了更现代化的PPT自动化解决方案。

3.1 环境配置与基础安装

安装必要的Python库

pip install python-pptx pandas openpyxl pillow

基础环境设置

from pptx import Presentationfrom pptx.util import Inches, Ptfrom pptx.enum.text import PP_ALIGNfrom pptx.dml.color import RGBColorimport pandas as pdimport osfrom pathlib import Pathclass PPTGenerator:    """PPT生成器基类"""    def __init__(self, template_path=None):        if template_path and os.path.exists(template_path):            self.prs = Presentation(template_path)        else:            self.prs = Presentation()        self.setup_logging()        self.setup_directories()    def setup_logging(self):        """设置日志系统"""        import logging        logging.basicConfig(level=logging.INFO)        self.logger = logging.getLogger(__name__)    def setup_directories(self):        """设置目录结构"""        self.output_dir = Path("output")        self.temp_dir = Path("temp")        self.output_dir.mkdir(exist_ok=True)        self.temp_dir.mkdir(exist_ok=True)

3.2 核心生成逻辑

完整的Python PPT生成类

class ProductPPTGenerator(PPTGenerator):    """产品PPT生成器"""    def __init__(self, template_path=None):        super().__init__(template_path)        self.product_layout = self.find_product_layout()    def find_product_layout(self):        """查找产品介绍版式"""        for layout in self.prs.slide_layouts:            if layout.name and "产品" in layout.name:                return layout        # 如果没有找到特定版式,使用第一个内容版式        return self.prs.slide_layouts[1]    def load_product_data(self, data_source):        """加载产品数据"""        if isinstance(data_source, str):            if data_source.endswith('.xlsx'or data_source.endswith('.xls'):                return pd.read_excel(data_source)            elif data_source.endswith('.csv'):                return pd.read_csv(data_source)        elif isinstance(data_source, pd.DataFrame):            return data_source        raise ValueError("不支持的数据源格式")    def generate_batch_products(self, data_source, output_path=None):        """批量生成产品PPT"""        df = self.load_product_data(data_source)        success_count = 0        error_count = 0        for index, row in df.iterrows():            try:                self.add_product_slide(row)                success_count += 1                self.logger.info(f"成功添加产品: {row['产品名称']}")            except Exception as e:                error_count += 1                self.logger.error(f"添加产品失败 {row['产品名称']}{str(e)}")        # 保存文件        if not output_path:            output_path = self.output_dir / f"产品介绍_批量_{len(df)}款.pptx"        self.prs.save(output_path)        self.logger.info(f"PPT生成完成!成功: {success_count}, 失败: {error_count}")        return success_count, error_count    def add_product_slide(self, product_data):        """添加单个产品幻灯片"""        slide = self.prs.slides.add_slide(self.product_layout)        # 填充占位符内容        self.fill_placeholders(slide, product_data)        return slide

3.3 占位符处理与内容填充

智能占位符填充系统

def fill_placeholders(self, slide, product_data):    """填充占位符内容"""    for shape in slide.shapes:        if not shape.has_text_frame and not shape.is_placeholder:            continue        placeholder = shape.placeholder_format        if placeholder:            self.fill_specific_placeholder(shape, placeholder.type, product_data)def fill_specific_placeholder(self, shape, placeholder_type, product_data):    """根据占位符类型填充内容"""    try:        if placeholder_type == 1:  # 标题            shape.text = product_data.get('产品名称''')            self.format_title(shape)        elif placeholder_type == 2:  # 正文            description = product_data.get('产品描述''')            specifications = product_data.get('产品规格''')            full_text = f"{description}\n\n规格参数:\n{specifications}"            shape.text = full_text            self.format_body(shape)        elif placeholder_type == 7:  # 图片            img_path = product_data.get('图片路径''')            if img_path and os.path.exists(img_path):                self.insert_picture(shape, img_path)            else:                self.logger.warning(f"图片不存在: {img_path}")        elif placeholder_type == 13:  # 图表            sales_data = product_data.get('销售数据', {})            if sales_data:                self.insert_chart(shape, sales_data)    except Exception as e:        self.logger.error(f"填充占位符失败: {str(e)}")def insert_picture(self, placeholder, img_path):    """插入图片到占位符"""    # 获取占位符的位置和尺寸    left = placeholder.left    top = placeholder.top    width = placeholder.width    height = placeholder.height    # 添加图片    slide = placeholder.parent    slide.shapes.add_picture(img_path, left, top, width, height)    # 删除原始占位符    placeholder.element.getparent().remove(placeholder.element)def format_title(self, shape):    """格式化标题"""    text_frame = shape.text_frame    for paragraph in text_frame.paragraphs:        for run in paragraph.runs:            run.font.size = Pt(24)            run.font.bold = True            run.font.color.rgb = RGBColor(000)  # 黑色def format_body(self, shape):    """格式化正文"""    text_frame = shape.text_frame    text_frame.word_wrap = True  # 自动换行    for paragraph in text_frame.paragraphs:        paragraph.alignment = PP_ALIGN.LEFT        for run in paragraph.runs:            run.font.size = Pt(14)            run.font.color.rgb = RGBColor(646464)  # 深灰色

3.4 高级功能与批量处理

企业级批量处理解决方案

class EnterprisePPTGenerator(ProductPPTGenerator):    """企业级PPT生成器"""    def __init__(self, template_path, config=None):        super().__init__(template_path)        self.config = config or self.default_config()        self.setup_enterprise_features()    def default_config(self):        """默认配置"""        return {            'branding': {                'primary_color': RGBColor(0102204),                'secondary_color': RGBColor(2551530),                'font_family''微软雅黑'            },            'quality_control': {                'max_slides_per_presentation'50,                'image_min_resolution': (800600),                'file_size_limit_mb'50            }        }    def generate_enterprise_presentation(self, products_data, output_path):        """生成企业级演示文稿"""        # 分批处理,避免文件过大        batch_size = self.config['quality_control']['max_slides_per_presentation']        batches = [products_data[i:i + batch_size] for i in range(0len(products_data), batch_size)]        generated_files = []        for i, batch in enumerate(batches):            batch_pres = Presentation(self.template_path)            batch_generator = ProductPPTGenerator()            batch_generator.prs = batch_pres            # 生成当前批次            for product in batch:                batch_generator.add_product_slide(product)            # 添加品牌元素            self.apply_branding(batch_pres)            # 保存批次文件            batch_filename = output_path.parent / f"{output_path.stem}_part{i+1}{output_path.suffix}"            batch_pres.save(batch_filename)            generated_files.append(batch_filename)        return generated_files    def apply_branding(self, presentation):        """应用品牌样式"""        for slide in presentation.slides:            for shape in slide.shapes:                if shape.has_text_frame:                    self.apply_text_branding(shape)    def apply_text_branding(self, shape):        """应用文本品牌样式"""        for paragraph in shape.text_frame.paragraphs:            for run in paragraph.runs:                # 设置品牌字体和颜色                run.font.name = self.config['branding']['font_family']                if run.font.bold:                    run.font.color.rgb = self.config['branding']['primary_color']                else:                    run.font.color.rgb = self.config['branding']['secondary_color']

四、方案对比与选择指南

4.1 技术特性全面对比

特性维度

VBA方案

Python方案

优势分析

开发效率

⭐⭐⭐⭐(快速上手)

⭐⭐⭐(需要学习)

VBA学习曲线更平缓

功能强大性

⭐⭐⭐(中等)

⭐⭐⭐⭐(强大)

Python生态更丰富

跨平台性

⭐(仅Windows)

⭐⭐⭐⭐(全平台)

Python真正跨平台

维护成本

⭐⭐(较高)

⭐⭐⭐⭐(较低)

Python更易维护

集成能力

⭐⭐⭐(Office生态)

⭐⭐⭐⭐(多系统)

Python集成性更强

处理速度

⭐⭐⭐⭐(快速)

⭐⭐⭐(中等)

VBA执行效率更高

4.2 实际应用场景选择指南

选择VBA方案当

  • 环境稳定:企业已部署Microsoft Office且版本统一

  • 快速上线:需要立即投入使用的解决方案

  • 简单需求基础的产品介绍生成,无需复杂逻辑

  • 非技术团队:运营团队熟悉Office但不熟悉编程

选择Python方案当

  • 复杂需求:需要高级格式化数据验证

  • 跨平台部署:需要在不同操作系统上运行

  • 系统集成:需要与电商平台数据库深度集成

  • 大规模处理:需要处理上千款产品的批量生成

五、实战案例:电商新品上架自动化

5.1 业务背景与挑战

某电商企业每月上架300+新品,传统PPT制作方式面临挑战:

  • 人力成本高3名设计师全职制作产品PPT

  • 制作周期长:从数据准备PPT完成需要3-5天

  • 一致性差不同设计师制作的PPT风格不统一

  • 更新困难价格调整库存变更需要重新制作

5.2 基于Python的完整解决方案

电商新品PPT自动化平台

class EcommercePPTGenerator(EnterprisePPTGenerator):    """电商PPT生成器"""    def __init__(self, template_path, ecommerce_config):        super().__init__(template_path)        self.ecommerce_config = ecommerce_config        self.setup_ecommerce_integration()    def setup_ecommerce_integration(self):        """设置电商平台集成"""        self.platform_adapters = {            'taobao': TaobaoAdapter(),            'jd': JDAdapter(),            'pdd': PDDAdapter()        }    def generate_from_ecommerce_data(self, platform, product_ids, output_path):        """从电商平台数据生成PPT"""        adapter = self.platform_adapters.get(platform)        if not adapter:            raise ValueError(f"不支持的平台: {platform}")        # 获取产品数据        products_data = []        for product_id in product_ids:            try:                product_data = adapter.get_product_data(product_id)                products_data.append(product_data)            except Exception as e:                self.logger.error(f"获取产品数据失败 {product_id}{str(e)}")        # 生成PPT        return self.generate_enterprise_presentation(products_data, output_path)    def generate_with_ai_enhancement(self, products_data, output_path):        """AI增强的PPT生成"""        enhanced_data = []        for product in products_data:            # AI优化产品描述            enhanced_description = self.enhance_with_ai(product['description'])            product['enhanced_description'] = enhanced_description            # AI选择最佳图片            best_image = self.select_best_image_with_ai(product['images'])            product['selected_image'] = best_image            enhanced_data.append(product)        return super().generate_enterprise_presentation(enhanced_data, output_path)# 使用示例def ecommerce_demo():    """电商应用演示"""    config = {        'template_path''templates/ecommerce_template.pptx',        'ecommerce_config': {            'auto_crop_images'True,            'optimize_for_mobile'True,            'add_qr_codes'True        }    }    generator = EcommercePPTGenerator(**config)    # 从淘宝平台获取产品数据    product_ids = ['123456''789012''345678']    result = generator.generate_from_ecommerce_data('taobao', product_ids, '新品介绍.pptx')    return resultif __name__ == "__main__":    ecommerce_demo()

测试题

  1. 在VBA方案中,如何处理图片占位符的替换?当产品图片不存在时,应该采取什么备选方案?

  2. Python的python-pptx库中,占位符(placeholder)与普通形状(shape)的主要区别是什么?在自动化生成过程中如何正确识别和利用占位符?

  3. 当需要为不同品类的产品(如服装、电子产品、食品)应用不同的PPT版式时,两种方案各应该如何设计架构来实现这种灵活性?

  4. 在大规模批量生成过程中(如1000+产品),Python方案可能遇到什么性能瓶颈?应该采取什么优化策略?

  5. 请设计一个混合架构方案,利用VBA快速原型设计和模板制作,通过Python进行大规模批量生成,并说明这种架构的数据流和接口设计。


答案

  1. VBA图片占位符处理:通过PlaceholderFormat.Type属性识别图片占位符(ppPlaceholderPicture),使用Shapes.AddPicture方法插入图片。当图片不存在时,显示默认占位图记录错误日志,并继续处理后续产品

  2. 占位符与普通形状区别占位符是模板中预定义的特殊形状,具有特定类型和用途普通形状无此特性。通过shape.is_placeholder判断,使用placeholder_format.type获取类型。占位符能保持版式一致性

  3. 多版式架构设计VBA通过CustomLayouts集合管理不同版式,根据产品类别字段选择对应版式。Python可创建版式映射字典,使用layout.name或自定义属性进行匹配,支持动态版式选择

  4. 性能优化策略内存管理:分批处理,及时释放资源;图片优化:预处理图片尺寸格式;异步处理:使用多进程并行生成;缓存机制:缓存模板解析结果。

  5. 混合架构设计VBA前端提供模板设计和快速预览;Python后端处理数据准备和批量生成;通过JSON配置文件传递版式信息和生成参数;采用文件监视器实现异步协作。


希望这篇详细的自动化PPT生成指南能帮助您提升电商运营效率!如果觉得本文有帮助,请点赞、收藏、转发支持一下!

最新文章

随机文章

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