导出时合并单元格

POI 导出Excel 复杂表头,合并单元格 最近在研究报表导出的方式,在网络上找了很多方法,因我要导出的报表是比较复杂一点的,涉及到复杂的表头,合并单元格,最后找到了这篇文章里所写的方法,所以就总结了一下,希望对大家有帮助。1、     controller层方法:这个为在controller层调用的方法。    /**     * 下载生成数据报表     */    @RequestMapping(value = "/download"... 阅读详情

首先需要导出的页面是这样,涉及到合并单元格的操作

调用合并单元格需要的参数说明

String fileName = "调休统计表";
String[] head0=new String[] {"姓名","值班类型","工作日夜班","工作日夜班","周末公休日和法定节假日","周末公休日和法定节假日","合计补休(天)"};
String[] headnum0 = new String[] { "1,2,0,0", "1,2,1,1", "1,1,2,3",
                    "1,1,4,5", "1,2,6,6"};//对应excel中的行和列,下表从0开始{"开始行,结束行,开始列,结束列"}
String[] head1 = new String[]{"值班(个)","补休(天)","占用(个)","补休(天)"};
String[] headnum1 = new String[] { "2,2,2,2", "2,2,3,3", "2,2,4,4",
                    "2,2,5,5" };
String[] colName = new String[] { "name", "ondutyName", "nums",
                    "compRest", "numsHoliday", "compRestHoliday", "sum" };//需要显示在excel中的参数对应的值,因为是用map存的,放的都是对应的key
    //list是需要导出的列表的数据 
       ExcelUtils.reportMergeXls(request,response,list,head0,headnum0,head1,headnum1,colName,fileName);

 调用合并单元格的接口

 /**
     * 多行表头
     * dataList:导出的数据;sheetName:表头名称; head0:表头第一行列名;headnum0:第一行合并单元格的参数
     * head1:表头第二行列名;detail:导出的表体字段
     *
     */ 
public static void reportMergeXls(HttpServletRequest request,
                                      HttpServletResponse response, List<Map<String, Object>> dataList,
                                      String[] head0, String[] headnum0,
                                      String[] head1, String[] headnum1, String[] detail ,
                                      String fileName) throws Exception {
        HSSFWorkbook workbook = new HSSFWorkbook();
        HSSFSheet sheet = workbook.createSheet();// 创建一个表
        // 设置列宽  (第几列,宽度)
        // 第一行表头标题
        sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, head0.length-1));
        HSSFRow row = sheet.createRow(0);
        row.setHeight((short) 0x349);
        HSSFCell cell = row.createCell(0);
        cell.setCellValue(fileName);

        // 第二行表头列名
        row = sheet.createRow(1);
        for (int i = 0; i < head0.length; i++) {
            cell = row.createCell(i);
            cell.setCellValue(head0[i]);
        }
        //动态合并单元格
        for (int i = 0; i < headnum0.length; i++) {
            String[] temp = headnum0[i].split(",");
            Integer startrow = Integer.parseInt(temp[0]);
            Integer overrow = Integer.parseInt(temp[1]);
            Integer startcol = Integer.parseInt(temp[2]);
            Integer overcol = Integer.parseInt(temp[3]);
            sheet.addMergedRegion(new CellRangeAddress(startrow, overrow,
                    startcol, overcol));
        }
        //设置合并单元格的参数并初始化带边框的表头(这样做可以避免因为合并单元格后有的单元格的边框显示不出来)
        row = sheet.createRow(2);//因为下标从0开始,所以这里表示的是excel中的第三行
        for (int i = 0; i < head0.length; i++) {
            for (int j = 0; j < head1.length; j++) {
                cell = row.createCell(j + 2);
                cell.setCellValue(head1[j]);
            }
        }
        //动态合并单元格
        /*for (int i = 0; i < headnum1.length; i++) {
            String[] temp = headnum1[i].split(",");
            Integer startrow = Integer.parseInt(temp[0]);
            Integer overrow = Integer.parseInt(temp[1]);
            Integer startcol = Integer.parseInt(temp[2]);
            Integer overcol = Integer.parseInt(temp[3]);
            sheet.addMergedRegion(new CellRangeAddress(startrow, overrow,
                    startcol, overcol));
        }*/

        // 设置列值-内容
        for (int i = 0; i < dataList.size(); i++) {
            row = sheet.createRow(i + 3);
            for (int j = 0; j < detail.length; j++) {
                Map tempmap = (HashMap) dataList.get(i);
                Object data = tempmap.get(detail[j]);
                cell = row.createCell(j);
                cell.setCellValue(String.valueOf(data));
            }
        }
        //3.将excel文件返回到前台
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String dateTime = sdf.format(new Date());
        String filename = fileName + "(" + dateTime + ").xls";
        writeResponse(workbook, filename, request, response);
    }

 

基于jeecg-boot的根据模板导出excel @AutoLog(value = "excel导出-收快递") @ApiOperation(notes="excel导出-收快递", value="excel导出-收快递") @RequestMapping(value = "/exportXls") public ModelAndView exportXls(ExpressCollect expressCollect, HttpServletRequest request, HttpServletResponse response. 阅读详情

相关推荐

水下机器人仿真平台选型指南:从AirSim到Unity3D的深度对比

本文深入对比了AirSim+UE和Unity3D两大水下机器人仿真平台的核心架构、传感器仿真能力和水下环境建模特点。AirSim+UE凭借高精度物理仿真和丰富传感器支持成为专业研发首选,而Unity3D则以快速开发和灵活扩展见长。文章为研发团队提供了全面的选型指南,帮助优化水下实验的仿真效率与成本。

weixin_29009669的博客 449

电子表格 随笔 导出

0. 照例引用 csv和xlsx区别 by CSND-weixin_30535565 autopoi导出xls/xlsx by 看云-jeecg Java端轻量级CSV读写库javacsv by maven-respository 1. 简而言之 xlsx、xls(早期的版本)均是Microsoft office下的Excel所维护的电子表格的文件格式 csv则为更加通用的、更加简洁的电子表格的文件格式 接下来将展现一波.csv文件的结构之简洁: Excel 打开方式 记事本 打开方式 2. Autop

hyoka的博客 1150

Cloudflare 5秒盾逆向实战:从503到cf_clearance的全流程拆解(附避坑指南)

本文深入拆解了Cloudflare 5秒盾的完整逆向流程,从首次503响应到最终获取cf_clearance令牌,详细解析了五层挑战机制。文章重点分享了实战中的核心避坑指南,包括时间戳校验、动态图片尺寸获取、会话保持方案选择以及复杂环境检测的应对策略,为开发者提供了一套绕过5秒盾的实用方法论。

weixin_29327977的博客 2296

【以视图的方式返回导出excel】

以视图的方式返回导出excel

weixin_50230823的博客 785

概率数据关联(PDA):多目标跟踪的基石算法

1. 为什么需要概率数据关联? 2. 核心思想与假设条件 3. 算法核心:概率分配与状态更新 4. 典型应用场景与优势 5. 挑战与改进方向 6. 下期预告

qq_44965657的博客 1462

RWEQ土壤风蚀模型的估算与变化归因分析

本次以介绍RWEQ模型的基本原理及数据需求,再结合案例讲解RWEQ模型中区域地理空间数据库构建的方法和各个参量提取的原理与方法,最后结合典型案例进行综合讲解风蚀模数估算、制图及归因分析。空间分析与制图:提取分析、局部分析、邻域分析、区域分析、插值分析、平滑处理、像元提取、采样与重采样。以某实际应用为案例,掌握RWEQ模型进行当地土壤风蚀量空间分布分析整体流程。地图服务器、在线地图、范围指示器、格网、表格、基础地图服务使用规则介绍。掌握土壤风蚀模型的原理、优势点及因子组成。

2301_77413856的博客 1193

浅谈java单元格合并的实现(转载)

摘要:本文主要叙述如何通过建立数据库模型(单元格模型)。重载JTable的三个重要方法(getCellRect(),columnAtPoint(),rowAtPoint())和继承Jtable的渲染组件(BasicTableUI)来实现单元格的合并. 关键字:Jtable,合并单元格,重载 如何工程涉及到表格的话,就不得不使用Java Swing 中的JTable的合并单元格的实现。...

。。。。。。。 922

量化投资进阶:Fama-French三因子模型实战解析与Python实现

本文深入解析了Fama-French三因子模型,并提供了完整的Python实战指南。文章阐述了该模型如何通过引入市值因子(SMB)和价值因子(HML),对传统CAPM模型进行重要扩展,以更精准地解释股票收益来源。详细演示了使用Python获取数据、执行回归分析并解读结果(包括关键的阿尔法α)的全过程,并探讨了该模型在量化策略构建、风格诊断和业绩归因中的核心应用。

yog99的博客 1126

EasyExcel 导出时怎么合并单元格?

例子:当通过人员信息去查询业务信息时,一个人员有多条业务信息时,这个时候直接将查询出的结果直接导出的话会出现如下图一样的情况,该人员对应的业务信息有三条,人员信息模块会有三条一样的人员信息。站在使用者的角度上这样会不太直观,那么就需要程序在导出之前去处理一对多的情况,当人员有多条业务数据时,去合并人员信息模块单元格;

qq_40949345的博客 4784

【Unity优化篇】| Unity3D场景 常用优化策略,遮挡剔除、层消隐距离技术 和 LOD多层次细节

本篇文章来简单介绍一下 Unity中几种常用3D场景优化策略 方法 对于整个项目来说,本文中出现的方法也只是冰山一角,慢慢积累学习吧! 内容包括遮挡剔除(Occlusion Culling)、层消隐距离技术 和 LOD多层次细节

努力前行,总会成为自己心中的那道光 1万+

华为ensp、思科eve、华为ensp pro中通过cloud桥接本地网络和联通互联网的方法

华为ensp、思科eve中通过cloud桥接本地网络和联通互联网的方法

suofen9703的博客 409

Java POI导出Excel时,合并单元格没有边框的问题

Java POI导出Excel时,合并单元格没有边框的问题

Alicia 6165

NSX-T 4.1部署搭建

NSX-T4.1 部署搭建

weixin_58250887的博客 564

【EasyExcel】解决模板导出时,合并单元格样式丢失

解决使用EasyExcel 模板导出时,列表中的合并单元格列,自动新增时样式异常,不会自动合并。在导出示例中,不给备注列设值。

_修铁路的、的博客 507

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

easyexcel导出时合并单元格,处理大批量数据

​ 之前,在使用easyexcel时导出excel数据时,使用到合并单元格的操作,但是在数据量到达2万三左右的时候,一直报io异常,而且时间非常长,自己也不知道怎么解决,后面在网上找了一个写入了处理行策略的处理器类,就算是十万+的数据量的合并单元格,也处理得十分快,下面贴出处理器类的方法重写以及easyExcel的使用。

weixin_42667972的博客 363

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

使用EasyExcel导出表格时合并单元格

EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。他能让你在不用考虑性能、内存的等因素的情况下,快速完成Excel的读、写等功能。

iiopsd的博客 1万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

使用XSSFWorkbook导出Excel时发现设置合并单元格的边框样式无效果

在使用XSSFWorkbook导出Excel时,通过new CellRangeAddress(firstRow, lastRow, firstCol, lastCol)来合并单元格,其中参数均由下标0开始。例如new CellRangeAddress(0, 0, 0, 2)表示合并第0行的第0、1、2列单元格。通过titleStyle设置边框样式无效果,或者说效果不全,只有原本是合并前的第一个单元格有效果。最后导出来的表格如下所示。导出来的表格如下所示。

巧乐兹zzz的博客 737

easypoi导出时合并单元格

java使用easypoi导出时进行单元格合并

wscn9527的博客 3292

poi之----esaypoi 模板导出循环指令fe 合并单元格时格式错乱问题

话不多说直接干饭,我的esaypoi使用的是4.3.0 1.加载模板数据导出语句 Workbook book = ExcelExportUtil.exportExcel(params, valueXbx); @Test public void xbx() throws Exception { //养护方案全部 Map<String, Object> valueXbx = new HashMap<String, Object>(); // List<Ma

徐本锡的专栏 39万+

ruoyi导出excel时合并单元格

ruoyi导出excel时合并单元格

weixin_45750619的博客 4898

java jxl 复制单元格,jxl导出报表时,怎样合并单元格?解决办法

当前位置:我的异常网» Java Web开发»jxl导出报表时,怎样合并单元格?解决办法jxl导出报表时,怎样合并单元格?解决办法www.myexceptions.net网友分享于:2013-06-09浏览:47次jxl导出报表时,怎样合并单元格?我把一列数据导出,在一个循环内如何控制单元格的合并啊?------解决方案--------------------问题不是很明白啊。我给你个...

weixin_36111194的博客 208

poi导出excel时调用合并单元格后没有边框

原理就是调用合并单元格之前把要合并的区域都设置一遍样式,当然你也可以合并之后再设置样式 // --------设置边框、内容居中--------- Font font = sheet.getWorkbook().createFont(); DataFormat df = sheet.getWorkbook().createDataFormat(); font.s...

qq_32877493的博客 2045

避开这3个坑!用EasyExcel导出带合并单元格的报表时我踩过的雷

本文分享了使用EasyExcel导出带合并单元格报表时常见的3个陷阱及解决方案,包括版本兼容性问题、样式继承错误和动态合并的硬编码问题。通过实战案例和代码示例,帮助开发者避免主标题错位、样式丢失等问题,实现专业级报表导出。

weixin_29275257的博客 95

导出excel时,如何屏蔽合并单元格时的提示窗口

//在合并单元格前,将Application.DisplayAlerts 设置为Falselo_myole.Application.DisplayAlerts = False//lo_myole是导出excel时,创建的OLE对象 //合并单元格后,设置为Truelo_myole.Application.DisplayAlerts = True

doodle 1286

POI导出Excel合并单元格时的边框问题

在Excel中合并了单元格,仅使用的是下面的代码 CellRangeAddress cra = new CellRangeAddress(0, 0, 0, (rowName.length-1)); sheet.addMergedRegion(cra);可以顺利地合并指定区域的单元格,但是其边框却无法显示完全,采用poi中的RegionUtil类可以成功解决: /*

吴渣渣的博客 8829

java poi应用,导出数据时合并单元格、居中、单元格背景色

@日常记录java poi java poi应用,导出数据时合并单元格、居中、单元格背景色 poi版本 poi-3.17 合并单元格 // 合并日期占两行(4个参数,分别为起始行,结束行,起始列,结束列); // 行和列都是从0开始计数,且起始结束都会合并 CellRangeAddress region = new CellRangeAddress(0, 0, 0, 2); ...

xie1325995573的博客 5757
上一篇: Object数组转String数组
下一篇: mysql通过对比一张表的数据来修改另一张表sql
hello_xing
博客等级 码龄8年 1931粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值