导出excel合并行列

java统计报表,导出excel,自定义存储目录 java统计报表,导出excle,自定义存储目录 做一个将查询出来的数据写入excel,并且点击导出按钮是,可以选择导出路径 **直接上完整代码 1.utils工具类,里面可以自己设置样式,详细看注释 import java.io.File; import java.io.FileOutputStream; import org.apache.commons.io.FileUtils; import org.apache.poi.hssf.usermodel.*; import org.apache.poi 阅读详情

做项目的时候一个导出的需求,使用框架封装的导出功能不能满足复杂动态表头的导出,因此,使用POI原生导出,借鉴了一些网上的导出demo。
本文介绍 HSSFWorkbook 导出Excel多行表头、合并单元格的表格。
表头样式如下:

在这里插入图片描述
直接上代码:

**
* 导出excel(月度业务明细)
*/
@GetMapping("/export")
public void exportExcel(String startTime,BusinessDetail businessDetail){
//表头动态日期
String year= startTime.substring(0,4);
String month = startTime.substring(5,7);
String day = startTime.substring(8,10);
Integer srcyear = (Integer.parseInt(year)-1);
//1.创建一个workbook,对应一个excel文件
HSSFWorkbook wb = new HSSFWorkbook();

    //2.在workbook中添加一个sheet,对应Excel中的sheet
    HSSFSheet sheet = wb.createSheet("月度业务明细");

	//设置每一列的列宽
	sheet.setColumnWidth(0,256*15);
    sheet.setColumnWidth(1,256*15);
    sheet.setColumnWidth(2,256*15);
    sheet.setColumnWidth(3,256*15);
    sheet.setColumnWidth(4,256*15);
    sheet.setColumnWidth(5,256*15);
    sheet.setColumnWidth(6,256*15);
    sheet.setColumnWidth(7,256*15);
    sheet.setColumnWidth(8,256*15);
    sheet.setColumnWidth(9,256*15);
    sheet.setColumnWidth(10,256*15);
    sheet.setColumnWidth(11,256*15);
    sheet.setColumnWidth(12,256*15);
    sheet.setColumnWidth(13,256*15);
    sheet.setColumnWidth(14,256*15);
    sheet.setColumnWidth(15,256*15);

    //3.设置样式以及字体样式
    HSSFCellStyle titleStyle = ExcelUtils.createTitleCellStyle(wb);
    HSSFCellStyle headerStyle = ExcelUtils.createHeadCellStyle(wb);
    HSSFCellStyle contentStyle = ExcelUtils.createContentCellStyle(wb);

    //4.创建标题,合并标题单元格
    //行号
    int rowNum = 0;

    //创建第一行,索引从0开始(标题行)
    HSSFRow row0 = sheet.createRow(rowNum++);
    row0.setHeight((short) 800);// 设置行高
    String title = "月度业务明细";
    HSSFCell c00 = row0.createCell(0);
    c00.setCellValue(title);
    c00.setCellStyle(titleStyle);
    // 合并单元格,参数依次为起始行,结束行,起始列,结束列 (索引0开始)
    sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 15));//标题合并单元格操作,总列数为16

    //第二行
    HSSFRow row1 = sheet.createRow(rowNum++);
    row1.setHeight((short)500);
    String[] row_first = {"客户",month+"月发车",srcyear+"年12月31日前货款回收(期前欠款)",year+"年货款回收","截止"+year+"年"+month+"月"+day+"日业务明细","","","","","","","","","",month+"月份新增欠款",month+"月收款合计"};
    for (int i = 0; i < row_first.length; i++) {
        HSSFCell tempCell = row1.createCell(i);
        tempCell.setCellValue(row_first[i]);
        tempCell.setCellStyle(headerStyle);
    }
    //合并单元格
    sheet.addMergedRegion(new CellRangeAddress(1, 3, 0, 0));//经销商或客户
    sheet.addMergedRegion(new CellRangeAddress(1, 3, 1, 1));//12月发车
    sheet.addMergedRegion(new CellRangeAddress(1, 3, 2, 2));//期前欠款
    sheet.addMergedRegion(new CellRangeAddress(1, 3, 3, 3));//2019年货款回收
    sheet.addMergedRegion(new CellRangeAddress(1, 1, 4, 13));//截止2019年12月27日业务明细
    sheet.addMergedRegion(new CellRangeAddress(1, 3, 14, 14));//12月份新增加欠款
    sheet.addMergedRegion(new CellRangeAddress(1, 3, 15, 15));//12月份收款合计

    //第三行
    HSSFRow row2 = sheet.createRow(rowNum++);
    row2.setHeight((short)500);
    String[] row_second = {"","","","",month+"月合同发车","","",month+"月分期管理费及利息","","",month+"月代收代付运费","","",month+"月预付款","",""};
    for (int i = 0; i < row_second.length; i++) {
        HSSFCell tempCell = row2.createCell(i);
        tempCell.setCellValue(row_second[i]);
        tempCell.setCellStyle(headerStyle);
    }

    //合并单元格
    sheet.addMergedRegion(new CellRangeAddress(2, 2, 4, 6));
    sheet.addMergedRegion(new CellRangeAddress(2, 2, 7, 9));
    sheet.addMergedRegion(new CellRangeAddress(2, 2, 10, 12));
    sheet.addMergedRegion(new CellRangeAddress(2, 3, 13, 13));

    //第四行
    HSSFRow row3 = sheet.createRow(rowNum++);
    row3.setHeight((short)500);
    String[] row_third = {"","","","","应收","实收","欠款","应收","实收","欠款","应收","实收","欠款","","",""};
    for (int i = 0; i < row_third.length; i++) {
        HSSFCell tempCell = row3.createCell(i);
        tempCell.setCellValue(row_third[i]);
        tempCell.setCellStyle(headerStyle);
    }

    //查询月度明细列表
    List<BusinessDetail> list = businessService.selectMonthBusinessList(businessDetail);

    for(int i = 0;i<list.size();i++){
        HSSFRow tempRow = sheet.createRow(rowNum++);
        tempRow.setHeight((short)500);
        //循环单元格填入数据
        for(int j=0;j<16;j++){
            HSSFCell tempCell = tempRow.createCell(j);
            tempCell.setCellStyle(contentStyle);
            String cellValue = "";
            if(j ==0){
                //经销商
                cellValue = list.get(i).getClientName();
            }else if(j == 1){
                cellValue = list.get(i).getDespatchAmount();
            }else if(j ==2){
                if(list.get(i).getBalance() ==null){
                    cellValue = "0";
                }else{
                    cellValue = list.get(i).getBalance().toString();
                }
            }else if(j == 3){
                if(list.get(i).getLoanRecovery() ==null){
                    cellValue = "0";
                }else{
                    cellValue = list.get(i).getLoanRecovery().toString();
                }
            }else if(j ==4){
                if(list.get(i).getTotalMoney() ==null){
                    cellValue = "0";
                }else{
                    cellValue = list.get(i).getTotalMoney().toString();
                }
            }else if(j == 5){
                if(list.get(i).getRepayTotal() ==null){
                    cellValue = "0";
                }else{
                    cellValue = list.get(i).getRepayTotal().toString();
                }
            }else if(j == 6){
                if(list.get(i).getRestTotal() ==null){
                    cellValue = "0";
                }else{
                    cellValue = list.get(i).getRestTotal().toString();
                }
            }else if(j ==7){
                if(list.get(i).getTotalManage() ==null){
                    cellValue = "0";
                }else{
                    cellValue = list.get(i).getTotalManage().toString();
                }
            }else if(j == 8){
                if(list.get(i).getRepayManage() ==null){
                    cellValue = "0";
                }else{
                    cellValue = list.get(i).getRepayManage().toString();
                }
            }else if(j == 9){
                if(list.get(i).getRestManage() ==null){
                    cellValue = "0";
                }else{
                    cellValue = list.get(i).getRestManage().toString();
                }
            }else if(j == 10){
                if(list.get(i).getTotalFreight() ==null){
                    cellValue = "0";
                }else{
                    cellValue = list.get(i).getTotalFreight().toString();
                }
            }else if(j == 11){
                if(list.get(i).getRepayFreight() ==null){
                    cellValue = "0";
                }else{
                    cellValue = list.get(i).getRepayFreight().toString();
                }
            }else if( j == 12){
                if(list.get(i).getRestFreight() ==null){
                    cellValue = "0";
                }else{
                    cellValue = list.get(i).getRestFreight().toString();
                }
            }else if(j == 13){
                if(list.get(i).getImprest() ==null){
                    cellValue = "0";
                }else{
                    cellValue = list.get(i).getImprest().toString();
                }
            }else if(j ==14){
                if(list.get(i).getNewBalance() ==null){
                    cellValue = "0";
                }else{
                    cellValue = list.get(i).getNewBalance().toString();
                }
            }else if(j == 15){
                if(list.get(i).getRepayTotal() ==null){
                    cellValue = "0";
                }else{
                    cellValue = list.get(i).getRepayTotal().toString();
                }
            }
            tempCell.setCellValue(cellValue);
        }
    }

    //导出excel
    HttpServletResponse response = this.getResponse();
    String fileName = "月度业务明细.xls";
    try {
        fileName = new String(fileName.getBytes("UTF-8"),"ISO-8859-1");
        response.setHeader("Content-disposition", "attachment;filename=\"" + fileName + "\"");
        OutputStream stream = response.getOutputStream();
        if(null != wb && null != stream){
            wb.write(stream);
            wb.close();
            stream.close();
        }
    }catch (Exception e){
        e.printStackTrace();
    }
}

设置标题样式、表头样式以及内容样式:
单独写了一个ExcelUtils类,代码如下:

/**
* 创建标题样式
* @param wb
* @return
*/
public static HSSFCellStyle createTitleCellStyle(HSSFWorkbook wb){
HSSFCellStyle cellStyle = wb.createCellStyle();
//水平居中
cellStyle.setAlignment(HorizontalAlignment.CENTER);
//垂直对齐
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
//背景颜色
cellStyle.setFillForegroundColor(IndexedColors.GREY_40_PERCENT.getIndex());

    HSSFFont headerFont1 = (HSSFFont) wb.createFont();
    //字体加粗
    headerFont1.setBold(true);
    //字体类型
    headerFont1.setFontName("黑体");
    //字体大小
    headerFont1.setFontHeightInPoints((short)15);
    cellStyle.setFont(headerFont1);
    return cellStyle;
}

/**
 * 创建表头样式
 * @param wb
 * @return
 */
public static HSSFCellStyle createHeadCellStyle(HSSFWorkbook wb){
    HSSFCellStyle cellStyle = wb.createCellStyle();
    //设置自动换行
    cellStyle.setWrapText(true);
    //设置背景颜色
    cellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
    //水平居中
    cellStyle.setAlignment(HorizontalAlignment.CENTER);
    //垂直对齐
    cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
    cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
    cellStyle.setBottomBorderColor(IndexedColors.BLACK.index);
    //下边框
    cellStyle.setBorderBottom(BorderStyle.THIN);
    //左边框
    cellStyle.setBorderLeft(BorderStyle.THIN);
    //右边框
    cellStyle.setBorderRight(BorderStyle.THIN);
    //上边框
    cellStyle.setBorderTop(BorderStyle.THIN);

    //创建字体样式
    HSSFFont headerFont = (HSSFFont)wb.createFont();
    //字体加粗
    headerFont.setBold(true);
    //字体类型
    headerFont.setFontName("黑体");
    //字体大小
    headerFont.setFontHeightInPoints((short)12);
    //为标题样式添加字体样式
    cellStyle.setFont(headerFont);

    return cellStyle;
}

/**
 *  设置表格内容样式
 * @param wb
 * @return
 */
public static HSSFCellStyle createContentCellStyle(HSSFWorkbook wb){
    HSSFCellStyle cellStyle = wb.createCellStyle();
    //水平居中
    cellStyle.setAlignment(HorizontalAlignment.CENTER);
    //垂直居中
    cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
    //设置自动换行
    cellStyle.setWrapText(true);
    //上边框
    cellStyle.setBorderTop(BorderStyle.THIN);
    //下边框
    cellStyle.setBorderBottom(BorderStyle.THIN);
    //左边框
    cellStyle.setBorderLeft(BorderStyle.THIN);
    //右边框
    cellStyle.setBorderRight(BorderStyle.THIN);

    //设置字体
    HSSFFont font = (HSSFFont)wb.createFont();
    font.setColor((short)8);
    font.setFontHeightInPoints((short)12);

    return cellStyle;
}
JAVA合并Excel,把多个Excel合并成一个Excel,合并内容仅包括文字,图片 合并Excel,把多个Excel合并成一个Excel,合并内容仅包括文字,图片 阅读详情

相关推荐

使用XSSFWorkbook自由合并单元格并设置单元格样式

可以实现上图表格的合并导出,只需添加表头的值和合并单元格的数量,设置单元格的样式(字体,字体大小,字体颜色,是否加粗,是否居中)即可。 ​​​​

【poi导出excel之XSSFWorkbook】

HSSF、XSSF、SXSSF、excelutils工具类、poi生成excel下拉

一名后端程序猿 2万+

[Spawn service failed. Exiting] ROS2运行turtlebot3_gazebo例程卡住_报错

[Spawn service failed. Exiting] ROS2运行turtlebot3_gazebo例程卡住_报错

Feizhai2的博客 4861

用XSSFWorkbook导出合并单元格样式的excel表格

5.创建表头的数组(因为这里是个人写的一个合并单元格导出,故没有用到注解)其中10代表冻结的列数,1代表行数,这里的意思就是冻结第一行的10列。4.设置表头样式,先要创建一个XSSFCellStyle对象。3. 设置表格样式(我这里只需要一个冻结首行)1.先从数据库获取将要导出的数据。6.循环把样式都加载到表头上。7. 开始填充表格数据。

qq_59547237的博客 3174

Acer宏碁暗影骑士擎AN515-58原厂系统恢复指南:从ISO镜像到完整出厂设置

本文详细介绍了为Acer宏碁暗影骑士擎AN515-58游戏本恢复原厂系统的完整指南。从准备工作、数据备份到下载官方镜像、制作恢复U盘,再到BIOS设置与恢复流程,一步步教你如何将系统完整还原至出厂状态,确保所有硬件驱动、NITROSENSE控制中心等专属优化功能恢复正常,解决系统卡顿、功能异常等问题。

weixin_29271263的博客 1093

EduCoder 计算机网络实验 IP协议分析

第1关:跟踪抓包 任务描述 相关知识 IPV4数据包 截获数据报 分析截获结果 使用git将本地文件推送到远程仓库永久保存 操作要求 任务描述 本关任务:使用 Ping 命令发送数据报,用 Wireshark 截获数据报,分析 IP 数据报的格式,理解 IPV4 地址的编址方法,加深对 IP 协议的理解。 相关知识 为了完成本关任务,你需要掌握: 截获数据报; 简单分析数据包格式。 IPV4数据包 网际协议第 4 版(Internet Protocol version 4

qq_41975868的博客 1万+

Java Excel导出合并行列数据

【代码】Java Excel导出合并行列数据。

weixin_44826348的博客 257

软件测试——白盒测试实验报告,输入年月日算星期几

软件测试——白盒测试实验报告,输入年月日算星期几,测试用例设计和结果展示

weixin_52278161的博客 2745

c# Npoi导出Excel并合并行列

在工作开发中,客户经常要求数据库中数据导出到Excel表格。以前方法是引用office相关组件,如果客户没有安装office,功能就会遇到问题。 现在用Npoi导出Excel,导出表格是合并行列,如图: 导出的要求:合计列要进行合并,序号一致的要合并。最后一行要合并列。 因为相同序号数量不是固定的,要动态算合并的行数。 合并行列接口:XXX.AddMergedRegion(new CellRangeAddress(开始行, 最后一行, 开始列, 最后一列)); 引用组件: NPOI.dll; NPOI.O

weixin_40233187的博客 5317

【spark源码修改】hive3.1.3 spark3.5.4编译,需要修改源码,最终编译成功

【spark源码修改】hive3.1.3 spark3.5.4编译,需要修改源码,最终编译成功,附带问题分析详细过程

spark_dev的博客 1912

【大模型应用开发-FastAPI框架】(八)Sqlalchemy+postgresql简单增删改查

语言,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型”。SQLAlchemy的理念是,的量级和性能重要于对象集合;而对象集合的抽象又重要于表和行。因此,SQLAlchemy采用了类似于。社区中成为广泛使用的ORM工具之一,不亚于Django的ORM框架。和declarative等可选插件可以让用户使用声明语法。SQLAlchemy首次发行于2006年2月,并迅速地在。SQLAlchemy“采用简单的。二、安装postgresql。一、SQLAlchemy简介。的数据映射模型,而不是其他。

2098

gridview合并行列并导出Excel

 /// &lt;summary&gt;         /// 导出合并的gridview         /// &lt;/summary&gt;         /// &lt;param name="dataSource"&gt;数据源&lt;/param&gt;         /// &lt;param name="startColoum"&gt;要合并起始列,初始值:0&am

qiji2011的专栏 586

在SAP系统中创建物料 860000000000000082(物料描述为“8680月球广寒宫坦克车”)时,系统报出了一个错误

摘要:SAP系统创建物料"8680月球广寒宫坦克车"时出现"C+020"错误,提示评估区域C916未在物料分类账中设置为生产性。解决方案需进入"会计-控制-产品成本控制-实际成本核算"路径,将评估区域C916手动设置为生产性状态。该操作需由具备权限的系统管理员或FICO顾问执行,建议操作前进行数据备份或在测试环境验证。完成设置后即可重新创建物料。

金牌架构师 391

vue excel的导入导出与行列合并

用于xlsx 和 file-saver的使用,并excel导入的表格合并

l2036407544的博客 2525

亲测解决This application failed to start because no Qt platform plugin could be initialized.

这个问题是由于环境变量改变或者Qt的路径改变导致,解决办法是在环境变量里面重新添加Qt路径。

狂小虎/Anthony Dave的博客 KuangXiaoHu's Blogs 2920

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Java Excel导出复杂excel表格样式之ExcelUtil工具类

Java Excel导出包括普通导出及复杂表格样式,主要是对于需要进行行列合并的列进行特殊处理,计算清楚起始行,结束行,起始列,结束列。** 普通导出可以是所有列,也可以是包含某些列,或者排除某些列;

qq_40985985的博客 3912

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Java处理Excel中复杂表头导出

背景: 在导出Excel数据时遇到非常复杂的表头,怎么处理更加简单优雅呢?网上主要流传着两种解决方式,一种是用代码合并拼接表头,一种是在Excel中画好模板,导入时加载模板然后填充数据。相比之下第二种解决方式就显得非常优雅而简约,因为第一种用代码合并拼接表头最头疼的是计算行列、合并行列,然后再手动往不规则的表头中填入数据。而使用第二种相当于把合并表头部分在Excel中可视化处理了,在写数据时只需要加载模板再写入数据就OK了。 代码: 工具类代码: import org.apache.poi.xss

qq_41630866的博客 3329

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Java + Ireport template 导出复杂Excel(多张图、表、合并行列)

Java + Ireport template 导出复杂Excel(多张图、表、合并行列) 优快云用了很久,但是第一次写博文,通过这个技术点让我体会到了一个人做项目的不易,同时也感谢几位大牛的热心回复@小美猪。 直接正题: 需求:一个复杂报表导出Excel、Word。(听上去好简单) ; 看看报表长什么样: 有Echart 动态图,有Bootstrap Table、静态表格… Word使用的是...

weixin_43877800的博客 1037

.net core 使用Epplus导出excel(支持多表头,行列合并)

先来简单介绍下市面上最广泛常见的三种操作excel库的优缺点 1.NPOI 优点:免费开源,无需装Office即可操作excel, 支持处理的文件格式包括xls, xlsx, docx.格式 缺点:不支持大数据量以及多sheet的导出 2.Aspose.Cells 优点:支持大数据量以及多sheet的导出,提供了应有尽有的文件格式支持,速度快性能佳 缺点:除了收费几乎没有缺点,试用版 限制打开文件数量100个,限制使用Aspose.Cells.GridWeb功能,生成的Excel会有水印 3.EPPlus

Roy的博客 5020

导出excel 并对其合并

using System;using System.Collections.Generic;using System.Text;using System.Data;//using Microsoft.Office.Core;using Microsoft.Office.Interop.Excel;using Infragistics.WebUI.UltraWebGrid;using System.

guodianzhanghui的专栏 739

POI 导出 Excel:字体颜色、行列自适应、锁住、合并单元格

前言 锁住单元格 设置列宽 设置行高 设置字体,颜色 合并单元格 1. 前言 poi框架可以支持我们在java代码中, 将数据导出成excel,但是实际开发中, 往往还需要设置excel字体,颜色,行高,列宽等属性, 有时候还需要锁住单元格, 防止别人讲数据随意篡改. 废话不多说, 直接上代码 2. 锁住单元格 导出excel , 自然就有导入excel 了, 比如导出一些数据出来, 修改一些再导入进去, 但是这时, 一些基本信息我们不希望用..

哈利路亚的收藏夹 601

POI 导出 Excel:字体颜色、行列自适应、锁住、合并单元格……

来源:zzzgd.blog.youkuaiyun.com/article/details/80627175 1. 前言 poi框架可以支持我们在java代码中, 将数据导出成excel,但是实际开发中, 往往还需要设置excel字体,颜色,行高,列宽等属性, 有时候还需要锁住单元格, 防止别人讲数据随意篡改. 废话不多说, 直接上代码 2. 锁住单元格 导出excel , 自然就有导入excel 了, 比如导出一些数据出来, 修改一些再导入进去, 但是这时, 一些基本信息我们不希望用户随意去修改, 这里就用到了exce

Java技术栈,分享最主流的Java技术 620

前端导出word文件的多种方式、前端导出excel文件

前端导出word文件的多种方式、导出excel文件 纯前借助word模板端导出word文件 (推荐,前端借助word模板导出word,需要的依赖库:docxtemplater,pizzip,jszip-utils,file-saver,前端导出excel文件,需要的依赖库:node-xlsx,当让也可以借助xlsx库,这个看自己选择,只要实现客户想要的功能就行。

夜空孤狼啸的博客 6054

POI做导出Excel设置单元格中字体大小颜色,合并行列

public class ExcelTest {   /**     * @param args     */     public static void main(String[] args) throws IOException {            try {              HSSFWorkbook wb = new HSSFWorkbook();

kunkun378263的专栏 8万+

POI 导出 Excel:字体颜色、行列自适应、锁住、合并单元格、一文搞定……

大家好,我是老赵!1. 前言poi框架可以支持我们在java代码中, 将数据导出成excel,但是实际开发中, 往往还需要设置excel字体,颜色,行高,列宽等属性, 有时候还需要锁住单元格, 防止别人讲数据随意篡改.废话不多说, 直接上代码2. 锁住单元格导出excel , 自然就有导入excel 了, 比如导出一些数据出来, 修改一些再导入进去, 但是这时, 一些基本...

公众号-老炮说Java 786
上一篇: java 后台导出excel 包含样式格式 这是多个sheet 连续导出
下一篇: springboot整合ElasticSearch
chenlin_lin
博客等级 码龄9年 4粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值