如何在navicat中复制一条数据并粘贴
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在navicat中复制一条数据并粘贴相关的知识,希望对你有一定的参考价值。
Navicat 如何复制粘贴数据Navicat 是数据库管理工具,Navicat Premium 结合其它 Navicat 成员功能,支持单一程序同时连接到mysql、MariaDB、SQL Server、SQLite、Oracle和PostgreSQL数据库。关于 Navicat 的复制粘贴教程分为两部分,一是从 Navicat 复制数据,二是粘贴数据到 Navicat。
一、从 Navicat 复制数据
被复制的数据从 Navicat 进入 windows 剪贴板,以定位分隔栏位和回车键分隔记录,可以任意粘贴剪贴板上的内容到应用程序。一般试算表应用程序会注意到栏位之间的定位字符并会整齐地分开剪贴板数据到行和列。
使用“键盘快捷键”选择数据
● CTRL+A:在数据网格中选择全部行和列。
● SHIFT+箭头:在数据网格中上下左右移动选择单元格。
使用“鼠标操作”选择数据
● 按住 CTRL 键同时点击每行可高亮显示所需的记录。
● 选择一个单元格块。
注意:在选择所需的记录后,按 CTRL+C 或右击并在弹出菜单中选择“复制”即可。
粘贴数据到 Navicat
数据复制到剪贴板的格式:
● 数据编排为行和列。
● 行和列分别以回车键或定位分隔。
● 剪贴板列有和数据网格列相同的序列。
当粘贴数据到 Navicat,可以替换现有记录的内容和添加剪贴板数据到表。要替换表中现有记录的内容,必需在数据网格选择其内容必须被剪贴板数据替换的单元格。按 CTRL+V 或右击并在弹出菜单中选择“粘贴”即可。如果没有开启事务,粘贴动作不可以还原。 参考技术A 右击要被复制的表,选择前1000行,查看其数据
2
拖拽选择你想复制的记录范围,然后按下【Ctrl + C】,或者右击选择【复制】
3
右击要粘贴的表上,选择编辑前200行
4
选择好要粘贴的范围,然后右击选择【粘贴】
5
粘贴时,标题也会粘贴进来,此时再将标题行选中,按 Delete 键删除即可
END
方法二:Excel拷贝法(可导入mysql数据库)
打开Excel,选择并复制你想拷贝到表中的范围
右击要粘贴的表,选择编辑前200行
选中要粘贴的范围,然后右击粘贴
好了,你在excel中复制的数据,已经完全拷贝到表中啦 \(^o^)/
你可以通过 Navicat 将 mysql 中的数据导出到Excel。然后用这种方法,可将其导入到 SQL Server 中
如何在 QTableView 中复制和粘贴多行/列(来自 pandas 数据框的数据源)? [复制]
【中文标题】如何在 QTableView 中复制和粘贴多行/列(来自 pandas 数据框的数据源)? [复制]【英文标题】:How to Copy and Paste multiple rows/columns in QTableView (data sources from pandas dataframe)? [duplicate] 【发布时间】:2021-09-15 17:35:33 【问题描述】:我在 GUI 中使用Pyqt5
中的QTableView
显示数据框。我应该如何对其进行编码,以便用户可以同时复制粘贴多行/列以及行索引(用于行)和标题(用于列)?
我在下面举了一个简单的例子。我假设我们需要一个QTableView
的子类并为它定义一个keyPressEvent
。
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import Qt
import pandas as pd
class TableModel(QtCore.QAbstractTableModel):
def __init__(self, data):
super(TableModel, self).__init__()
self._data = data
def data(self, index, role):
if role == Qt.DisplayRole:
value = self._data.iloc[index.row(), index.column()]
return str(value)
def rowCount(self, index):
return self._data.shape[0]
def columnCount(self, index):
return self._data.shape[1]
def headerData(self, section, orientation, role):
# section is the index of the column/row.
if role == Qt.DisplayRole:
if orientation == Qt.Horizontal:
return str(self._data.columns[section])
if orientation == Qt.Vertical:
return str(self._data.index[section])
class View(QTableView):
def __init__(self):
super(View, self).__init__(parent=None)
def keyPressEvent(self, event):
if event.matches(QKeySequence.Copy):
# some code to get copy_text?
QApplication.clipboard().setText(copy_text)
QTableView.keyPressEvent(self, event)
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.table = View() # use subclass View() instead of self.table = QtWidgets.QTableView()
data = pd.DataFrame([
[1, 9, 2],
[1, 0, -1],
[3, 5, 2],
[3, 3, 2],
[5, 8, 9],
], columns = ['A', 'B', 'C'], index=['Row 1', 'Row 2', 'Row 3', 'Row 4', 'Row 5'])
self.model = TableModel(data)
self.table.setModel(self.model)
self.setCentralWidget(self.table)
app=QtWidgets.QApplication(sys.argv)
window=MainWindow()
window.show()
app.exec_()
【问题讨论】:
【参考方案1】:您可以循环查看selectedIndexes()
,然后最终对它们进行排序。
def keyPressEvent(self, event):
if event.matches(QtGui.QKeySequence.Copy):
data = []
for index in sorted(self.selectedIndexes()):
data.append(('\t\t\t\t'.format(
index.row(), index.column(), index.data())))
if data:
QtWidgets.QApplication.clipboard().setText(
'Row\t\tCol\t\tValue:\n' + '\n'.join(data))
return
QtWidgets.QTableView.keyPressEvent(self, event)
请注意,默认的 QModelIndex 实现支持先按行排序,然后按列排序,但您可以使用 lambda 更改行为:
for index in sorted(self.selectedIndexes(), key=lambda i: (i.column(), i.row())):
【讨论】:
以上是关于如何在navicat中复制一条数据并粘贴的主要内容,如果未能解决你的问题,请参考以下文章
如何将数据复制并粘贴到 MySQL Workbench 表中?