首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PyQt: QTableView + QSqlTableModel -将所有选定的行或列复制并粘贴到记事本或QSqlTableModel中

PyQt是一个Python的GUI编程工具包,它提供了丰富的组件和功能,可以用于创建各种类型的图形用户界面应用程序。QTableView是PyQt中的一个表格视图组件,可以用于显示和编辑表格数据。QSqlTableModel是PyQt中的一个模型类,用于与数据库表进行交互。

在使用QTableView和QSqlTableModel时,如果想将选定的行或列复制并粘贴到记事本或QSqlTableModel中,可以按照以下步骤进行操作:

  1. 获取选定的行或列:可以使用QTableView的selectionModel()方法获取选择模型,然后使用selectedRows()或selectedColumns()方法获取选定的行或列。
  2. 复制选定的行或列:可以使用QClipboard类将选定的行或列复制到剪贴板。可以使用QModelIndexList中的数据来获取选定的行或列的数据,并使用QClipboard的setText()方法将数据设置到剪贴板中。
  3. 粘贴到记事本或QSqlTableModel中:如果要粘贴到记事本中,可以使用Python的文件操作函数将剪贴板中的数据写入到记事本文件中。如果要粘贴到QSqlTableModel中,可以使用QSqlTableModel的insertRows()和setData()方法将数据插入到模型中。

以下是一个示例代码,演示了如何将选定的行或列复制并粘贴到记事本或QSqlTableModel中:

代码语言:python
代码运行次数:0
复制
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableView, QAbstractItemView, QMenu, QAction, QFileDialog
from PyQt5.QtGui import QClipboard
from PyQt5.QtCore import Qt, QModelIndex
from PyQt5.QtSql import QSqlDatabase, QSqlTableModel
import sys

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.table_view = QTableView(self)
        self.setCentralWidget(self.table_view)

        # 创建数据库连接
        self.db = QSqlDatabase.addDatabase("QSQLITE")
        self.db.setDatabaseName("database.db")
        self.db.open()

        # 创建模型
        self.model = QSqlTableModel(self, self.db)
        self.model.setTable("table_name")
        self.model.select()

        # 设置表格视图
        self.table_view.setModel(self.model)
        self.table_view.setSelectionMode(QAbstractItemView.ExtendedSelection)
        self.table_view.setContextMenuPolicy(Qt.CustomContextMenu)
        self.table_view.customContextMenuRequested.connect(self.show_context_menu)

    def show_context_menu(self, pos):
        menu = QMenu(self.table_view)
        copy_action = QAction("复制", self)
        copy_action.triggered.connect(self.copy_selected_rows_or_columns)
        menu.addAction(copy_action)
        menu.exec_(self.table_view.viewport().mapToGlobal(pos))

    def copy_selected_rows_or_columns(self):
        selection_model = self.table_view.selectionModel()
        indexes = selection_model.selectedIndexes()

        if len(indexes) == 0:
            return

        # 获取选定的行或列
        rows = set()
        columns = set()
        for index in indexes:
            rows.add(index.row())
            columns.add(index.column())

        # 复制选定的行或列到剪贴板
        clipboard = QApplication.clipboard()
        mime_data = []
        for row in rows:
            row_data = []
            for column in columns:
                index = self.model.index(row, column)
                row_data.append(index.data())
            mime_data.append("\t".join(row_data))
        clipboard.setText("\n".join(mime_data))

        # 粘贴到记事本或QSqlTableModel中
        file_dialog = QFileDialog(self)
        file_dialog.setAcceptMode(QFileDialog.AcceptSave)
        file_dialog.setDefaultSuffix("txt")
        file_dialog.setOption(QFileDialog.DontUseNativeDialog, True)
        file_dialog.setFileMode(QFileDialog.AnyFile)
        if file_dialog.exec_() == QFileDialog.Accepted:
            file_path = file_dialog.selectedFiles()[0]
            with open(file_path, "w") as file:
                file.write("\n".join(mime_data))

            # 或者将数据插入到QSqlTableModel中
            for row_data in mime_data:
                self.model.insertRows(self.model.rowCount(), 1)
                for column, data in enumerate(row_data.split("\t")):
                    index = self.model.index(self.model.rowCount() - 1, column)
                    self.model.setData(index, data)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

在这个示例代码中,我们创建了一个主窗口,并在主窗口中添加了一个QTableView作为中心组件。我们使用QSqlTableModel来管理数据,并将其设置为QTableView的模型。通过设置QTableView的选择模式为ExtendedSelection,可以实现多选功能。我们还为QTableView添加了一个上下文菜单,用于触发复制操作。

在复制操作中,我们首先获取选定的行或列的索引,然后将其对应的数据复制到剪贴板中。接下来,我们通过QFileDialog选择保存文件的路径,并将数据写入到文件中。如果要将数据插入到QSqlTableModel中,可以使用insertRows()和setData()方法将数据插入到模型中。

需要注意的是,这只是一个示例代码,具体的实现方式可能因应用场景的不同而有所差异。在实际开发中,可以根据需求进行适当的修改和扩展。

推荐的腾讯云相关产品:腾讯云数据库MySQL、腾讯云对象存储COS、腾讯云云服务器CVM等。您可以访问腾讯云官网了解更多产品信息和文档:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Qt数据库sqlite总结

其中的SQL语句“select * from student”中“*”号表明查询表中记录的所有属性。...获取每条记录中属性(即列)的个数 int fieldNo = query.record().indexOf(“name”);//获取”name”属性所在列的编号,列从左向右编号,最左边的编号为0 int...model->setEditStrategy(QSqlTableModel::OnManualSubmit);//设置保存策略为手动提交 model->select(); //选取整个表的所有行 //...//当tableview被修改后,要通过submitAll()函数进行保存  bool QSqlTableModel::submitAll (),提交所有被修改的数据,然后修改的数据被保存在数据库中 model...();    //返回所有选定模型项目索引列表 foreach (QModelIndex index, selected) {     int curRow=index.row();     model

3K20
  • 【QT】QT模型视图

    模型/视图编程 Qt中的模型/视图架构用来实现大量的数据存储、处理及显示。...模型 所有的模型都基于QAbstractItemModel类,该类提供了十分灵活的接口来处理各种视图,这些视图的数据表现形式为表格(table)、列表(list)、树(tree)。...模型索引QModeIIndex类提供对一块数据的临时引用, 用来修改或检索模型中的数据,获取一个数据项的模型索引必须指定模型的3个属性:行号、列号和父项的模型索引。...QListView将数据项显示为一个列表;QTableView将模型中的数据显示在一个表格中;QTreeView将模型中的数据项显示在具有层次的列表中。...或QItemDelegate中其一来为视图中的项目绘制和提供编辑器。

    3K20

    C++ Qt开发:SqlRelationalTable关联表组件

    通过这个类,你可以在一个表中使用外键关联到另一个表的数据上。例如将主表中的某个字段与附加表中的特定字段相关联起来,QSqlRelation(关联表名,关联ID,名称)就是用来实现多表之间快速关联的。...来得到特定表中的记录,并通过setHeaderData将表中的数据关联到对应的数据模型内,最后通过setModel方法即可将对应的表数据关联到前端显示,其核心代码如下所示;MainWindow::MainWindow...indexColumn: 关联表中与当前表关联的列的名称,通常是外键列。displayColumn: 关联表中要显示的列的名称,通常是与外键列相关的实际数据。...db.open()) return;设置主窗口的布局和属性将主窗口的中央部件设置为一个 QTableView,同时对表格的选择行为和外观进行了设置。..."学院" 列与 "Departments" 表中的 "departID" 列关联起来,并在表格中显示 "department" 列的数据。

    28410

    CC++ Qt 数据库与SqlTableModel组件应用

    SqlTableModel 组件可以将数据库中的特定字段动态显示在TableView表格组件中,通常设置QSqlTableModel类的变量作为数据模型后就可以显示数据表内容,界面组件中则通过QDataWidgetMapper...// 添加数据映射,将选中字段映射到指定编辑框中 // https://www.cnblogs.com/lysharK dataMapper= new QDataWidgetMapper...当用户点击TableView组件内的某一行记录时,则触发MainWindow::on_currentRowChanged函数。...执行获取name/mobile字段,并放入映射数据集中的 lineEdit编辑框中 void MainWindow::on_currentRowChanged(const QModelIndex ¤t...如果需要修改或增加特定行或记录我们只需要点击相应的按钮,并在选中行直接编辑即可实现向数据库中插入数据,而有时我们不希望通过在原表上操作,而是通过新建窗体并在窗体中完成增删改,此时就需要使用Dialog窗体并配合原生

    93610

    CC++ Qt 数据库与SqlTableModel组件应用

    SqlTableModel 组件可以将数据库中的特定字段动态显示在TableView表格组件中,通常设置QSqlTableModel类的变量作为数据模型后就可以显示数据表内容,界面组件中则通过QDataWidgetMapper...// 添加数据映射,将选中字段映射到指定编辑框中 // https://www.cnblogs.com/lysharK dataMapper= new QDataWidgetMapper....图片当用户点击TableView组件内的某一行记录时,则触发MainWindow::on_currentRowChanged函数。...执行获取name/mobile字段,并放入映射数据集中的 lineEdit编辑框中void MainWindow::on_currentRowChanged(const QModelIndex ¤t...如果需要修改或增加特定行或记录我们只需要点击相应的按钮,并在选中行直接编辑即可实现向数据库中插入数据,而有时我们不希望通过在原表上操作,而是通过新建窗体并在窗体中完成增删改,此时就需要使用Dialog窗体并配合原生

    87730

    Python Qt GUI设计:QTableView、QListView、QListWidet、QTableWidget、QTreeWidget和QTreeWidgetltem表格和树类(提升篇—1)

    QListView类中的常用方法如下表所示: QListView类中的常用信号如下表所示: 通过示例了解QListView类的使用方法,效果如下所示: 示例中,将QListView控件的clicked...QListWidget类中的常用方法如下表所示: QListWidget类中的常用信号如下表所示: 通过示例了解QListWidget类的使用方法,效果如下所示: 示例中, 将QListWidget...通过示例了解QTableWidget类的使用方法,效果如下所示: 示例中, 构造了一个QTableWidget对象,并且设置表格为4行3列。...QAbstractItemView.NoEditTriggers) # 设置表格为整行选择 #tableWidget.setSelectionBehavior( QAbstractItemView.SelectRows) # 将行和列的大小设为与内容相匹配...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    3.4K20

    Python Qt GUI设计:QTableView、QListView、QListWidet、QTableWidget、QTreeWidget和QTreeWidgetltem表格和树类(提升篇—1)

    QTableView控件可以绑定一个模型数据用来更新控件上的内容,可用的模式如下表所示: 通过示例了解QTableView类的使用方法,效果如下所示: 实现代码如下所示: from PyQt5.QtWidgets...QListView类中的常用方法如下表所示: QListView类中的常用信号如下表所示: 通过示例了解QListView类的使用方法,效果如下所示: 示例中,将QListView控件的clicked...QListWidget类中的常用方法如下表所示: QListWidget类中的常用信号如下表所示: 通过示例了解QListWidget类的使用方法,效果如下所示: 示例中, 将QListWidget...通过示例了解QTableWidget类的使用方法,效果如下所示: 示例中, 构造了一个QTableWidget对象,并且设置表格为4行3列。...QAbstractItemView.NoEditTriggers) # 设置表格为整行选择 #tableWidget.setSelectionBehavior( QAbstractItemView.SelectRows) # 将行和列的大小设为与内容相匹配

    3.9K30

    真正的干货!100多条Qt开发经验,解决你开发各种问题!

    原文在书的212页,这样描述的:Qt对所有的容器和许多其他类都使用隐含共享,隐含共享是Qt对不希望修改的数据决不进行复制的保证,为了使隐含共享的作用发挥得最好,可以采用两个新的编程习惯。...在QTableView控件中,如果需要自定义的列按钮、复选框、下拉框等其他模式显示,可以采用自定义委托QItemDelegate来实现,如果需要禁用某列,则在自定义委托的重载createEditor函数返回...心中有坐标,万物皆painter,强烈建议在学习自定义控件绘制的时候,将qpainter.h头文件中的函数全部看一遍、试一遍、理解一遍,这里边包含了所有Qt内置的绘制的接口,对应的参数都试一遍,你会发现很多新大陆...对QTableView或者QTableWidget禁用列拖动。...在Qt5.10以后,表格控件QTableWidget或者QTableView的默认最小列宽改成了15,以前的版本是0,所以在新版的qt中,如果设置表格的列宽过小,不会应用,取的是最小的列宽。

    4.2K11

    PyQt5高级界面控件之QTableWidget(四)

    :需要合并的列数 setShowGrid() 在默认情况下表格的显示是有网格的,可以设置True或False用于是否显示,默认True setColumnWidth(int column,int width...QTableWidgetItem对象,并添加到表格的0行0列处 newItem=QTableWidgetItem('张三') TableWidget.setItem(0,0,newItem) 优化1...#将第一列的单元宽度设置为150 #tableWidget.setColumnWidth(0,150) #将第一行的单元格高度的设置为120...(2, 2, newItem) 优化5:合并单元格 将表格中第一行第一列的单元格,更改为占据5行1列 #合并单元格 tableWidget.setSpan(2,0,5,1) 优化6:设置单元格的大小...这里将第一行宽度设置为150,高度设置为120 #将第一列的单元宽度设置为150 tableWidget.setColumnWidth(0,150) #将第一行的单元格高度的设置为120 tableWidget.setRowHeight

    4.1K10

    visual studio运行程序的快捷键_visual studio快捷方式在哪

    Ctrl+N:去下一个书签处 Ctrl+C, Ctrl+V:在当前行的下一行复制当前行内容(不用选中当前行),即复制当前行并粘贴到下一行,在两行内容差不多时很有用,可以先复制再改 Ctrl+L:删除当前行...Ctrl+9 隐藏选定行 Ctrl+Shift+( 取消选定区域内的所有隐藏行的隐藏状态 Ctrl+0 隐藏选定列 Ctrl+Shift+) 取消选定区域内的所有隐藏列的隐藏状态 Ctrl+...Ctrl+\ 在选定的行中,选取与活动单元格中的值不匹配的单元格 Ctrl+Shift+| 在选定的列中,选取与活动单元格中的值不匹配的单元格 Ctrl+[ 选取由选定区域中的公式直接引用的所有单元格...Ctrl+Shift+箭头键 将选定区域扩展到与活动单元格在同一列或同一行的最后一个非空单元格 Shift+Home 将选定区域扩展到行首 Ctrl+Shift+Home 将选定区域扩展到工作表的开始处...End+Shift+箭头键 将选定区域扩展到与活动单元格在同一列或同一行的最后一个非空单元格 End+Shift+Home 将选定区域扩展到工作表的最后一个使用的单元格(右下角) End+Shift

    4.8K10

    常用快捷键大全

    窗口控制快速键 Win+Home: 将所有使用中窗口以外的窗口最小化(和摇动使用中窗口一样意思) Win+Space:将所有桌面上的窗口透明化(和鼠标移到工作列的最右下角一样意思) Win+上方向键:...| 在选定的列中,选取与活动单元格中的值不匹配的单元格 Ctrl+[ 选取由选定区域中的公式直接引用的所有单元格 Ctrl+Shift+{ 选取由选定区域中的公式直接或间接引用的所有单元格...Ctrl+Shift+箭头键 将选定区域扩展到与活动单元格在同一列或同一行的最后一个非空单元格 Shift+Home 将选定区域扩展到行首 Ctrl+Shift+Home...将选定区域向下扩展一屏 Shift+Page Up 将选定区域向上扩展一屏 End+Shift+箭头键 将选定区域扩展到与活动单元格在同一列或同一行的最后一个非空单元格...Ctrl+C, Ctrl+V:在当前行的下一行复制当前行内容(不用选中当前行),即复制当前行并粘贴到下一行,在两行内容差不多时很有用,可以先复制再改 Ctrl+L:删除当前行 Ctrl+M, Ctrl

    4.4K11

    【工具】一个投行工作十年MM的Excel操作大全

    :F2 取消单元格或编辑栏中的输入项:ESC 编辑活动单元格并清除其中原有的内容:BACKSPACE 将定义的名称粘贴到公式中:F3 完成单元格输入:ENTER 将公式作为数组公式输入:CTRL+SHIFT...左移到非相邻的选定区域:CTRL+ALT+左箭头键 12>Excel快捷键之选择单元格、列或行 选定当前单元格周围的区域:CTRL+SHIFT+*(星号) 将选定区域扩展一个单元格宽度:SHIFT+...箭头键 选定区域扩展到单元格同行同列的最后非空单元格:CTRL+SHIFT+ 箭头键 将选定区域扩展到行首:SHIFT+HOME 将选定区域扩展到工作表的开始:CTRL+SHIFT+HOME 将选定区域扩展到工作表的最后一个使用的单元格...模式:END 将选定区域扩展到单元格同列同行的最后非空单元格:END, SHIFT+ 箭头键 将选定区域扩展到工作表上包含数据的最后一个单元格:END, SHIFT+HOME 将选定区域扩展到当前行中的最后一个单元格.../ 选定所有带批注的单元格:CTRL+SHIFT+O (字母 O) 选择行中不与该行内活动单元格的值相匹配的单元格:CTRL+\ 选中列中不与该列内活动单元格的值相匹配的单元格:CTRL+SHIFT+|

    3.7K40

    Navicat Premium 15永久使用,安装教程,快捷键.md

    7、打开Navicat Premium 15,点击注册,将复制好的密钥粘贴进去,点击激活按钮。8、在弹出的选择框中选择手动激活。 图片9、将请求码粘贴到注册机Request Code框中。...SQL语句Ctrl + D:复制当前行Ctrl + Y:撤销上一次操作Ctrl + Z:重做上一次操作数据表操作在Navicat中对数据表进行操作时,可以使用以下快捷键来提高效率:Ctrl + C:复制当前行或列...Ctrl + V:粘贴已复制的内容Ctrl + X:剪切当前行或列Ctrl + A:全选当前表格的所有内容Ctrl + F:查找当前表格中的关键字Alt + Enter:查看当前单元格的属性信息数据过滤和排序在...Navicat中进行数据过滤和排序时,可以使用以下快捷键来快速操作:Shift + F6:切换筛选模式Alt + S:筛选当前选定的行Alt + C:清除当前筛选条件Alt + N:按数值排序当前选定的列...Ctrl + T:将选定的数据导出为SQL文件Ctrl + P:打印当前选定的数据表或查询结果Ctrl + J:将当前选定的数据导出为PDF文件Ctrl + G:将当前选定的数据导出为HTML文件Ctrl

    40800

    天天做饼图,你烦不烦?老板都看腻了!

    作者:兰色幻想-赵志东 来源:Excel精英培训(ID:excelpx-tete) 在Excel或PPT中,如果做完成率图表,99.99%的人都会选择饼图。 ? 好象也没毛病,也挺好看的。...但如果我告诉你,这个图表是用柱形图做的,会不会很意外?可这是真的 在Excel中有一个奇异的现象,被很多图表高手用来做高阶图表:图片可以直接粘到图表中!...2、按shift不松插入圆形,复制并按Ctrl+V粘贴到低柱子上,然后圆形改变成白色填充只留边线,再复制粘贴到高柱子上。 ?...3、选中实心图形,右键菜单中点“设置数据点格式,填充 - 选中层叠并缩放 ? 4、在图表工具 - 设计 - 切换行/列。...Excel图表可以直接粘到PPT中的,还可以粘贴成带链接的格式,Excel中数据更新,PPT中图表也会更新。 想要工作出色,就要有自已的特色,做数据分析报告、做图表也是这样。

    93220

    RPA与Excel(DataTable)

    Shift+箭头键 将选定区域扩展到与活动单元格在同一列或同一行的最后一个非空单元格:Ctrl+Shift+箭头键 将选定区域扩展到行首:Shift+Home 将选定区域扩展到工作表的开始处:Ctrl+...将选定区域扩展到与活动单元格在同一列或同一行的最后一个非空单元格:End+Shift+箭头键 将选定区域扩展到工作表的最后一个使用的单元格(右下角):End+Shift+Home 将选定区域扩展到当前行中的最后一个单元格...,插入参数名和括号:Ctrl+Shift+A 将定义的名称粘贴到公式中:F3 用SUM函数插入“自动求和”公式:Alt+=(等号) 将活动单元格上方单元格中的数值复制到当前单元格或编辑栏:Ctrl+Shift...+"(双引号) 将活动单元格上方单元格中的公式复制到当前单元格或编辑栏:Ctrl+'(撇号) 在显示单元格值和显示公式之间切换:Ctrl+`(左单引号) 计算所有打开的工作簿中的所有工作表:F9 计算活动工作表...显示、隐藏和分级显示数据 对行或列分组:Alt+Shift+向右键 取消行或列分组:Alt+Shift+向左键 显示或隐藏分级显示符号:Ctrl+8 隐藏选定的行:Ctrl+9 取消选定区域内的所有隐藏行的隐藏状态

    5.8K20

    5.1 PowerBI技巧-导出数据到Excel的4种方法

    2 在数据视图中导出在数据视图中,在表的列或内容上点击鼠标右键-复制/复制表,可以复制列/整个表格。...复制粘贴到Excel中,行数受Excel限制,最多1048576行;如果粘贴到记事本或CSV文件中,行数不受限制。...在PowerBI桌面版中只能导出最多3万行,在PowerBI线上版中可以导出最多15万行(当前布局,适用于表和矩阵)和最多50万行(汇总数据,一维表)。...要求用户是工作区的管理员、成员、或贡献者权限,或者某个报告直接给了用户读取权限,在报告页面上,点击导出->在Excel中分析,就可以导出一个连接到模型的Excel文件,在透视表中拖拉拽就可以导出任何想要的数据了...Excel菜单栏数据下的连接属性,将数字格式前的挑勾取消,就能快速导出几十万行数据了。

    12610

    只要会复制粘贴,令人眼前一亮的创意图表你也能制作出来

    其实背后的原理总结起来就三大步: 第一步:准备素材 第二步:复制素材 第三步:粘贴素材 下面我们就逐一破解吧。 案例一 涉及知识点:复制粘贴/层叠 选定目标数据后,插入普通的柱形图。...首先,我们增加一辅助列“整体”,为原数据添加多一个系列,然后选中所有数据,插入柱形图: 单击任一柱形图,然后在【设置数据系统格式】窗口里,将【系列重叠】调为100%,那么,两个系列的柱形就会完全重叠在一起...第二步:复制/粘贴素材 Ctrl+C复制灰色图标素材,然后Ctrl+V粘贴到蓝色柱形图,如下: 同样的步骤,Ctrl+C复制青色图标素材,Ctrl+V粘贴到黄色柱形图,如下: 然后分别对两个图标的填充方式调整为...工作中,我们要对比一组数据的时候,常会把它做成柱形图或者条形图,下面所要讲到的蝴蝶图其实就是条形图的变身,是两组数据的横向对比。因为其展示效果像蝴蝶的翅膀一样,所以,又称为蝴蝶图或旋风图。...总结:只要掌握了复制粘贴大法,你就可以充分利用丰富的图标或图片素材来填充图表,使图表观点表达更生功形象,同时填充方式的设置是实现创意图表的关键,【层叠】【层叠并缩放】,都要掌握哦。

    22130

    只要会复制粘贴,创意图表你也能做

    其实背后的原理总结起来就三大步: 第一步:准备素材;第二步:复制素材;第三步:粘贴素材。下面我们就逐一破解吧。 案例一: 涉及知识点:复制粘贴/层叠 选定目标数据后,插入普通的柱形图。...首先,我们增加一辅助列“整体”,为原数据添加多一个系列,然后选中所有数据,插入柱形图: 单击任一柱形图,然后在【设置数据系统格式】窗口里,将【系列重叠】调为100%,那么,两个系列的柱形就会完全重叠在一起...第二步:复制/粘贴素材 Ctrl+C复制灰色图标素材,然后Ctrl+V粘贴到蓝色柱形图,如下: 同样的步骤,Ctrl+C复制青色图标素材,Ctrl+V粘贴到黄色柱形图,如下: 然后分别对两个图标的填充方式调整为...工作中,我们要对比一组数据的时候,常会把它做成柱形图或者条形图,下面所要讲到的蝴蝶图其实就是条形图的变身,是两组数据的横向对比。因为其展示效果像蝴蝶的翅膀一样,所以,又称为蝴蝶图或旋风图。...总结: 只要掌握了复制粘贴大法,你就可以充分利用丰富的图标或图片素材来填充图表,使图表观点表达更生功形象,同时填充方式的设置是实现创意图表的关键,【层叠】【层叠并缩放】,都要掌握哦。

    86400
    领券