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

python excel 操作

excel文件内容如下:

一、xlrd 读Excel 操作

1、打开Excel文件读取数据

file=xlrd.open_workbook(filename)#文件名以及路径,如果路径或者文件名有中文给前面加一个 r

2、常用函数

(1)获取一个sheet工作表

table = file.sheets()[0]             #通过索引顺序获取
table = file.sheet_by_index(sheet_indx)  #通过索引顺序获取
table = file.sheet_by_name(sheet_name)  #通过名称获取# 以上三个函数都会返回一个xlrd.sheet.Sheet()对象names = file.sheet_names()        #返回book中所有工作表的名字
file.sheet_loaded(sheet_name or indx)    # 检查某个sheet是否导入完毕

 (2)行操作函数

nrows = table.nrows   # 获取该sheet中的行数,注,这里table.nrows后面不带().table.row(rowx)       # 返回由该行中所有的单元格对象组成的列表,这与tabel.raw()方法并没有区别。table.row_slice(rowx, start_colx=0, end_colx=None)   # 返回由该行中所有的单元格对象组成的列表table.row_types(rowx, start_colx=0, end_colx=None)  # 返回由该行中所有单元格的数据类型组成的列表;返回值为逻辑值列表,若类型为empy则为0,否则为1table.row_values(rowx, start_colx=0, end_colx=None)    # 返回由该行中所有单元格的数据组成的列表table.row_len(rowx)     # 返回该行的有效单元格长度,即这一行有多少个数据

(3)列操作函数

ncols = table.ncols     # 获取列表的有效列数table.col(colx, start_rowx=0, end_rowx=None)  # 返回由该列中所有的单元格对象组成的列表table.col_slice(colx, start_rowx=0, end_rowx=None) # 返回由该列中所有的单元格对象组成的列表table.col_types(colx, start_rowx=0, end_rowx=None)  # 返回由该列中所有单元格的数据类型组成的列表table.col_values(colx, start_rowx=0, end_rowx=None)  # 返回由该列中所有单元格的数据组成的列表

(4)单元格操作


table.cell(rowx,colx)    # 返回单元格对象table.cell_type(rowx,colx)   # 返回对应位置单元格中的数据类型table.cell_value(rowx,colx)    # 返回对应位置单元格中的数据

3、代码演示

(1) 基本函数用法演示

import os
import xlrdcurrent_path = os.getcwd()
path = os.path.join(current_path, 'test.xlsx')file = xlrd.open_workbook(path)# excel中最重要的方法就是book和sheet的操作
'''(1) 获取book(excel文件)中一个工作表 '''
sheet1 = file.sheets()[0]  # 通过索引获取sheet页
sheet1 = file.sheet_by_index(0)  # 通过索引获取sheet页
sheet1 = file.sheet_by_name('Sheet1')  # 通过名称获取sheet页
print(sheet1, sheet1, sheet1)  # 以上三个函数都会返回一个xlrd.sheet.Sheet()对象names = file.sheet_names()  # #返回文件中所有工作表的名字
print(names)  # ['Sheet1', 'Sheet2']'''(2)行的操作'''
print('-----------行操作----------------')
nrows = sheet1.nrows  # 获取该sheet中的行数,注,sheet1.nrows后面不带()
print(nrows)  # 3
# 返回由该行中所有的单元格对象组成的列表
print(sheet1.row(2))  # [text:'李四', number:10.0, text:'男', text:'二']
# 返回由该行中切片单元格对象组成的列表(rowx, start_colx=0, end_colx=None)
print(sheet1.row_slice(2, 1, 3))  # [number:10.0, text:'男']
# 返回由该行中所有单元格的数据类型组成的列表,支持开始结束列选择: table.row_types(rowx, start_colx=0, end_colx=None)
print(sheet1.row_types(2))  # array('B', [1, 2, 1, 1])# 返回由该行中所有单元格的数据组成的列表,支持开始结束列选择  table.row_values(rowx, start_colx=0, end_colx=None)
print(sheet1.row_values(2))  # ['李四', 10.0, '男', '二']# 返回该行的有效单元格长度,即这一行有多少个数据
print(sheet1.row_len(2))  # 4'''(3)列操作'''
print('-----------列操作----------------')
ncols = sheet1.ncols  # 获取列表的有效列数
print(ncols)  # 4print(sheet1.col(0))  # [text:'姓名', text:'张三', text:'李四']
print(sheet1.col_slice(0, 0, 1))  # [text:'姓名']
print(sheet1.col_types(0))  # [1, 1, 1]
print(sheet1.col_values(0))  # ['姓名', '张三', '李四']'''(4)单元格操作'''
print('-----------单元格操作----------------')
print(sheet1.cell(1, 1))  # number:8.0
print(sheet1.cell_type(1, 1))  # 2
print(sheet1.cell_value(1, 1))  # 8.0

输出内容:

<xlrd.sheet.Sheet object at 0x10b7b77c0> <xlrd.sheet.Sheet object at 0x10b7b77c0> <xlrd.sheet.Sheet object at 0x10b7b77c0>
['Sheet1', 'Sheet2']
-----------行操作----------------
3
[text:'李四', number:10.0, text:'男', text:'二']
[number:10.0, text:'男']
array('B', [1, 2, 1, 1])
['李四', 10.0, '男', '二']
4
-----------列操作----------------
4
[text:'姓名', text:'张三', text:'李四']
[text:'姓名']
[1, 1, 1]
['姓名', '张三', '李四']
-----------单元格操作----------------
number:8.0
2
8.0

(2)案例演示

import os
import xlrdcurrent_path = os.getcwd()
path = os.path.join(current_path, 'test.xlsx')xlsx = xlrd.open_workbook(path)# 通过sheet名查找:xlsx.sheet_by_name("sheet1")
# 通过索引查找:xlsx.sheet_by_index(3)
table = xlsx.sheet_by_index(0)# 获取单个表格值 (2,1)表示获取第3行第2列单元格的值
value = table.cell_value(2, 1)
print("第3行2列值为", value)# 获取表格行数
nrows = table.nrows
print("表格一共有", nrows, "行")# 获取第3列所有值(列表生成式)
name_list = [str(table.cell_value(i, 2)) for i in range(1, nrows)]
print("第3列所有的值:", name_list)

输出:

第3行2列值为 10.0
表格一共有 3 行
第3列所有的值: ['女', '男']

二、xlwt 写Excel操作

1、使用xlwt创建新表格并写入

import xlwtdef fun1():'''创建新的Excel,并写入内容'''# 创建新的workbook(其实就是创建新的excel)workbook = xlwt.Workbook(encoding='ascii')# 创建新的sheet表worksheet = workbook.add_sheet("MyNewSheet")# 往表格写入内容 (1行1列写入'内容1',3行2列写入'内容2')worksheet.write(0, 0, '内容1')worksheet.write(2, 1, '内容2')# 保存workbook.save("NewExcel.xls")
NewExcel.xls 内容:

 2、xlwt设置字体

import xlwtdef fun2():'''xlwt 设置字体格式'''# 创建新的workbook(其实就是创建新的excel)workbook = xlwt.Workbook(encoding='ascii')# 创建新的sheet表worksheet = workbook.add_sheet("NewSheet2")# 初始化样式style = xlwt.XFStyle()# 为样式创建字体font = xlwt.Font()font.name = 'Times New Roman'  # 字体font.bold = True  # 加粗font.underline = True  # 下划线font.italic = True  # 斜体# 设置样式style.font = font# 往表格写入内容worksheet.write(0, 0, "内容1")worksheet.write(2, 1, '内容2', style)# 保存workbook.save("NewExcel2.xls")

结果:

 3、xlwt 设置列宽

    xlwt中列宽的值表示方法:默认字体0的1/256为衡量单位。xlwt创建时使用的默认宽度为2960,既11个字符0的宽度。
    所以我们在设置列宽时可以用如下方法:width = 256 * 20    256为衡量单位,20表示20个字符宽度。

import xlwtdef fun3():'''xlwt 设置列宽xlwt中列宽的值表示方法:默认字体0的1/256为衡量单位。xlwt创建时使用的默认宽度为2960,既11个字符0的宽度所以我们在设置列宽时可以用如下方法:width = 256 * 20    256为衡量单位,20表示20个字符宽度'''# 创建新的workbook(其实就是创建新的excel)workbook = xlwt.Workbook(encoding='ascii')# 创建新的sheet表worksheet = workbook.add_sheet("NewSheet3")# 往表格写入内容worksheet.write(0, 0, "内容1")worksheet.write(2, 1, '内容2')# 设置列宽worksheet.col(0).width = 256 * 20# 保存workbook.save("NewExcel.xls")

结果:

 4、xlwt 设置行高

import xlwtdef fun4():'''xlwt 设置行高行高是在单元格的样式中设置的,你可以通过自动换行通过输入文字的多少来确定行高'''# 创建新的workbook(其实就是创建新的excel)workbook = xlwt.Workbook(encoding='ascii')# 创建新的sheet表worksheet = workbook.add_sheet("NewSheet3")# 往表格写入内容worksheet.write(0, 0, "内容1")worksheet.write(2, 1, '内容2')# 设置行高style = xlwt.easyxf('font:height 720;')  # 36pt,类型小初的字号row = worksheet.row(0)row.set_style(style)# 保存workbook.save("NewExcel.xls")

结果:

5、xlwt合并列和行

import xlwtdef fun5():'''合并列和行'''# 创建新的workbook(其实就是创建新的excel)workbook = xlwt.Workbook(encoding='ascii')# 创建新的sheet表worksheet = workbook.add_sheet("NewSheet3")# 往表格写入内容worksheet.write(0, 0, "内容1")# 合并 第2行到第3行 的 第1列到第4列worksheet.write_merge(1, 2, 0, 3, '合并内容')# 保存workbook.save("NewExcel.xls")

结果:

 6、xlwt添加边框

import xlwt
def fun6():# 创建新的workbook(其实就是创建新的excel)workbook = xlwt.Workbook(encoding='ascii')# 创建新的sheet表worksheet = workbook.add_sheet("My new Sheet")# 设置边框样式borders = xlwt.Borders()  # Create Borders# May be:   NO_LINE, THIN, MEDIUM, DASHED, DOTTED, THICK, DOUBLE, HAIR,#           MEDIUM_DASHED, THIN_DASH_DOTTED, MEDIUM_DASH_DOTTED, THIN_DASH_DOT_DOTTED,#           MEDIUM_DASH_DOT_DOTTED, SLANTED_MEDIUM_DASH_DOTTED, or 0x00 through 0x0D.# DASHED虚线# NO_LINE没有# THIN实线borders.left = xlwt.Borders.DASHEDborders.right = xlwt.Borders.DASHEDborders.top = xlwt.Borders.DASHEDborders.bottom = xlwt.Borders.DASHEDborders.left_colour = 0x40borders.right_colour = 0x40borders.top_colour = 0x40borders.bottom_colour = 0x40style = xlwt.XFStyle()  # Create Stylestyle.borders = borders  # Add Borders to Styleworksheet.write(2, 3, '内容1', style)worksheet.write(2, 1, "内容2")# 保存workbook.save("NewExcel.xls")

结果:

 

 7、设置单元格背景颜色

def fun7():# 创建新的workbook(其实就是创建新的excel)workbook = xlwt.Workbook(encoding='ascii')# 创建新的sheet表worksheet = workbook.add_sheet("My new Sheet")# 创建样式pattern = xlwt.Pattern()# May be: NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12pattern.pattern = xlwt.Pattern.SOLID_PATTERN# May be: 8 through 63. 0 = Black, 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow,# 6 = Magenta, 7 = Cyan, 16 = Maroon, 17 = Dark Green, 18 = Dark Blue, 19 = Dark Yellow ,# almost brown), 20 = Dark Magenta, 21 = Teal, 22 = Light Gray, 23 = Dark Gray, the list goes on...pattern.pattern_fore_colour = 5style = xlwt.XFStyle()style.pattern = pattern# 往表格写入内容worksheet.write(0, 0, "内容1")# 使用样式worksheet.write(2, 1, "内容2", style)# 保存workbook.save("NewExcel.xls")

结果:

 8、设置单元格对齐

def fun8():# 创建新的workbook(其实就是创建新的excel)workbook = xlwt.Workbook(encoding='ascii')# 创建新的sheet表worksheet = workbook.add_sheet("My new Sheet")# 设置样式style = xlwt.XFStyle()al = xlwt.Alignment()# VERT_TOP = 0x00       上端对齐# VERT_CENTER = 0x01    居中对齐(垂直方向上)# VERT_BOTTOM = 0x02    低端对齐# HORZ_LEFT = 0x01      左端对齐# HORZ_CENTER = 0x02    居中对齐(水平方向上)# HORZ_RIGHT = 0x03     右端对齐al.horz = 0x02  # 设置水平居中al.vert = 0x01  # 设置垂直居中style.alignment = al# 往表格写入内容worksheet.write(0, 0, "内容1")# 使用样式worksheet.write(2, 1, "内容2", style)# 保存workbook.save("NewExcel.xls")

结果:

 

相关文章:

python excel 操作

excel文件内容如下&#xff1a; 一、xlrd 读Excel 操作 1、打开Excel文件读取数据 filexlrd.open_workbook(filename)#文件名以及路径&#xff0c;如果路径或者文件名有中文给前面加一个 r 2、常用函数 &#xff08;1&#xff09;获取一个sheet工作表 table file.sheets(…...

记一次Linux启动Mysql异常解决

文章目录 第一步&#xff1a; netstat -ntlp 查看端口情况2、启动Mysql3、查看MySQL日志 tail -100f /var/log/mysqld.log4、查看磁盘占用情况&#xff1a;df -h5、思路小结 第一步&#xff1a; netstat -ntlp 查看端口情况 并没有发现3306数据库端口 2、启动Mysql service …...

ATFX汇市:美联储年内或仍将加息依次,美指向下空间不大

环球汇市行情摘要—— 昨日&#xff0c;美元指数上涨0.08%&#xff0c;收盘在102.08点&#xff0c; 欧元贬值0.07%&#xff0c;收盘价1.1003点&#xff1b; 日元贬值0.51%&#xff0c;收盘价142.47点&#xff1b; 英镑升值0.28%&#xff0c;收盘价1.2784点&#xff1b; 瑞…...

【博客687】k8s informer的list-watch机制剖析

k8s informer的list-watch机制剖析 1、list-watch场景&#xff1a; client-go中的reflector模块首先会list apiserver获取某个资源的全量信息&#xff0c;然后根据list到的rv来watch资源的增量信息。希望使用client-go编写的控制器组件在与apiserver发生连接异常时&#xff0c…...

用Python获取链家二手房房源数据,做可视化图分析数据

前言 数据采集的步骤是固定: 发送请求, 模拟浏览器对于url地址发送请求获取数据, 获取网页数据内容 --> 请求那个链接地址, 返回服务器响应数据解析数据, 提取我们需要的数据内容保存数据, 保存本地文件 所需模块 win R 输入cmd 输入安装命令 pip install 模块名 (如果你…...

Yield Guild Games:社区更新 — 2023 年第二季度

本文重点介绍了 Yield Guild Games (YGG) 2023 年第二季度社区更新中涵盖的关键主题&#xff0c;包括公会发展计划 (GAP) 第 3 季的总结、YGG 领导团队的新成员以及 YGG 的最新消息地区公会网络和广泛的游戏合作伙伴生态系统。 在 YGG 品牌焕然一新的基础上&#xff0c;第二季…...

Stable Diffusion - 运动服 (Gymwear Leggings) 风格服装与背景的 LoRA 配置

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/132179050 测试模型&#xff1a;DreamShaper 8 运动裤 (Gymwear Leggings) 是紧身的裤子&#xff0c;通常用于健身、瑜伽、跑步等运动。运动裤的…...

js-7:javascript原型、原型链及其特点

1、原型 JavaScript常被描述为一种基于原型的语言-每个对象拥有一个原型对象。 当试图访问一个对象的属性时&#xff0c;它不仅仅在该对象上搜寻&#xff0c;还会搜寻该对象的原型&#xff0c;以及该对象的原型的原型&#xff0c;依次层层向上搜索&#xff0c;直到找到一个名字…...

无涯教程-Perl - continue 语句函数

可以在 while 和 foreach 循环中使用continue语句。 continue - 语法 带有 while 循环的 continue 语句的语法如下- while(condition) {statement(s); } continue {statement(s); } 具有 foreach 循环的 continue 语句的语法如下- foreach $a (listA) {statement(s); } co…...

【贪心算法】leetcode刷题

贪心算法无固定套路。 核心思想&#xff1a;先找局部最优&#xff0c;再扩展到全局最优。 455.分发饼干 两种思路&#xff1a; 1、从大到小。局部最优就是大饼干喂给胃口大的&#xff0c;充分利用饼干尺寸喂饱一个&#xff0c;全局最优就是喂饱尽可能多的小孩。先遍历的胃口&a…...

PyMySQL库版本引起的python执行sql编码错误

前言 长话短说&#xff0c;之前在A主机&#xff08;centos7.9&#xff09;上运行的py脚本拿到B主机上&#xff08;centos7.9&#xff09;运行报错&#xff1a; UnicodeEncodeError: latin-1 codec cant encode characters in position 265-266: ordinal not in range(256)两个…...

第二章-算法

第二章-算法 数据结构和算法的关系 算法是解决特定问题求解步骤的描述&#xff0c;在计算机中表现为指令的有限序列&#xff0c;并且每条指令表示一个或多个操作。 算法的特性 算法有五个基本特征&#xff1a;输入、输出、有穷性、确定性和可行性。 输入&#xff1a;算法具…...

‘vue’不是内部或外部命令,也不是可运行的程序或批处理文件的原因及解决方法

今天我在用node.js的时候&#xff0c;结果出现如下错误&#xff1a; C:\Users\xiesj> vue -v vue不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。 原因&#xff1a; 1、确定npm是否已正确安装&#xff1f; 2、确定vue以及vue-cli已正确安装&#xff1f;…...

HBase API

我们之后的实际开发中不可能在服务器那边直接使用shell命令一直敲的&#xff0c;一般都是通过API进行操作的。 环境准备 新建Maven项目&#xff0c;导入Maven依赖 <dependencies><dependency><groupId>org.apache.hbase</groupId><artifactId>…...

Qt6之QListWidget——Qt仿ToDesk侧边栏(1)

一、 QLitWidget概述 注意&#xff1a;本文不是简单翻译Qt文档或者接口函数&#xff0c;而侧重于无代码Qt设计器下演示使用。 QListWidget也称列表框类&#xff0c;它提供了一个类似于QListView提供的列表视图&#xff0c;但是它具有一个用于添加和删除项的经典的基于项的接口…...

Prometheus技术文档--基本安装-docker安装并挂载数据卷-《十分钟搭建》

一、查看可安装的版本 docker search prom/prometheus 二、拉取镜像 docker pull prom/prometheus 三、查看镜像 docker images 四、书写配置文件-以及创建挂载目录 宿主机挂载目录位置&#xff1a; 以及准备对应的挂载目录&#xff1a; /usr/local/docker/promethues/se…...

Android 数据库之GreenDAO

GreenDAO 是一款开源的面向 Android 的轻便、快捷的 ORM 框架&#xff0c;将 Java 对象映射到 SQLite 数据库中&#xff0c;我们操作数据库的时候&#xff0c;不再需要编写复杂的 SQL语句&#xff0c; 在性能方面&#xff0c;greenDAO 针对 Android 进行了高度优化&#xff0c;…...

kotlin 编写一个简单的天气预报app(六)使用recyclerView显示forecast内容

要使用RecyclerView显示天气预报的内容 先在grandle里添加recyclerView的引用 implementation androidx.recyclerview:recyclerview:1.3.1创建一个RecyclerView控件&#xff1a;在布局文件中&#xff0c;添加一个RecyclerView控件&#xff0c;用于显示天气预报的列表。 这是一…...

jpa Page 1 of 0 containing UNKNOWN instances错误关于like问题的解决记录

导致这个问题的原因很多&#xff0c;这里记录一下我碰到的问题和解决方法。 网上有说时 pageNo要从0开始&#xff0c;我的不是这个问题。 在使用springboot jpa时&#xff0c;发现使用 t.ip like %?5% 语句&#xff0c;如果数据库记录的ip is null时&#xff0c;将查询不到该…...

Python实战之使用Python进行数据挖掘详解

一、Python数据挖掘 1.1 数据挖掘是什么&#xff1f; 数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中&#xff0c;通过算法&#xff0c;找出其中的规律、知识、信息的过程。Python作为一门广泛应用的编程语言&#xff0c;拥有丰富的数据挖掘库&#…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...