python xlrd读取excel数据实例
时间: 2023-09-10 16:10:48 浏览: 55
以下是一个简单的 Python 代码示例,用于使用 xlrd 库读取 Excel 数据。
```python
import xlrd
# 打开文件
wb = xlrd.open_workbook('example.xlsx')
# 选择工作表
sheet = wb.sheet_by_index(0)
# 读取单元格数据
cell_value = sheet.cell_value(0, 0)
# 读取行数据
row_values = sheet.row_values(0)
# 读取列数据
col_values = sheet.col_values(0)
# 读取多个单元格数据
cell_values = [sheet.cell_value(i, 0) for i in range(sheet.nrows)]
# 输出结果
print('单元格值:', cell_value)
print('行数据:', row_values)
print('列数据:', col_values)
print('多个单元格值:', cell_values)
```
这个示例展示了如何使用 xlrd 库打开一个 Excel 文件并读取数据。在读取数据之前,我们需要选择要读取的工作表。然后,我们可以使用 `cell_value`、`row_values` 和 `col_values` 方法读取单元格、行和列的数据。如果要读取多个单元格的数据,可以使用一个循环。最后,我们输出了读取的数据。
相关问题
使用python 编写一个界面,能够读取excel表格,可以对读取的数据进行添加、删除、修改、查询
好的,下面是一个简单的Python界面程序,可以读取Excel表格,并且可以对表格中的数据进行添加、删除、修改和查询。
首先,我们需要安装一些必要的库。这里我们使用PyQt5作为GUI库,使用xlrd库来读取Excel表格:
```
pip install PyQt5 xlrd
```
然后,我们可以开始编写程序。以下是完整的代码:
```python
import sys
import xlrd
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QVBoxLayout, QHBoxLayout, QWidget, QPushButton, QLineEdit, QLabel
class ExcelEditor(QMainWindow):
def __init__(self):
super().__init__()
# 设置窗口标题和大小
self.setWindowTitle('Excel编辑器')
self.setGeometry(100, 100, 800, 600)
# 设置表格
self.table = QTableWidget()
self.table.setColumnCount(3)
self.table.setHorizontalHeaderLabels(['姓名', '年龄', '性别'])
self.table.setEditTriggers(QTableWidget.NoEditTriggers)
# 设置按钮
self.addRowBtn = QPushButton('添加行')
self.delRowBtn = QPushButton('删除行')
self.modifyBtn = QPushButton('修改')
self.searchBtn = QPushButton('查询')
# 设置输入框和标签
self.nameLabel = QLabel('姓名:')
self.nameEdit = QLineEdit()
self.ageLabel = QLabel('年龄:')
self.ageEdit = QLineEdit()
self.genderLabel = QLabel('性别:')
self.genderEdit = QLineEdit()
# 设置布局
self.toolbar = QHBoxLayout()
self.toolbar.addWidget(self.addRowBtn)
self.toolbar.addWidget(self.delRowBtn)
self.toolbar.addWidget(self.modifyBtn)
self.toolbar.addWidget(self.searchBtn)
self.inputLayout = QHBoxLayout()
self.inputLayout.addWidget(self.nameLabel)
self.inputLayout.addWidget(self.nameEdit)
self.inputLayout.addWidget(self.ageLabel)
self.inputLayout.addWidget(self.ageEdit)
self.inputLayout.addWidget(self.genderLabel)
self.inputLayout.addWidget(self.genderEdit)
self.mainLayout = QVBoxLayout()
self.mainLayout.addWidget(self.table)
self.mainLayout.addLayout(self.toolbar)
self.mainLayout.addLayout(self.inputLayout)
self.centralWidget = QWidget()
self.centralWidget.setLayout(self.mainLayout)
self.setCentralWidget(self.centralWidget)
# 绑定事件
self.addRowBtn.clicked.connect(self.addRow)
self.delRowBtn.clicked.connect(self.delRow)
self.modifyBtn.clicked.connect(self.modifyRow)
self.searchBtn.clicked.connect(self.searchRow)
# 读取Excel表格
self.loadExcel('data.xlsx')
def loadExcel(self, filename):
book = xlrd.open_workbook(filename)
sheet = book.sheet_by_index(0)
# 设置表格行数
self.table.setRowCount(sheet.nrows)
# 将数据填充到表格中
for row in range(sheet.nrows):
name = QTableWidgetItem(sheet.cell(row, 0).value)
age = QTableWidgetItem(str(sheet.cell(row, 1).value))
gender = QTableWidgetItem(sheet.cell(row, 2).value)
self.table.setItem(row, 0, name)
self.table.setItem(row, 1, age)
self.table.setItem(row, 2, gender)
def addRow(self):
# 获取输入框中的数据
name = self.nameEdit.text()
age = self.ageEdit.text()
gender = self.genderEdit.text()
# 在表格中添加新行
row = self.table.rowCount()
self.table.insertRow(row)
self.table.setItem(row, 0, QTableWidgetItem(name))
self.table.setItem(row, 1, QTableWidgetItem(age))
self.table.setItem(row, 2, QTableWidgetItem(gender))
# 清空输入框
self.nameEdit.clear()
self.ageEdit.clear()
self.genderEdit.clear()
def delRow(self):
# 获取当前选中的行
rows = set()
for item in self.table.selectedItems():
rows.add(item.row())
# 删除选中的行
for row in sorted(rows, reverse=True):
self.table.removeRow(row)
def modifyRow(self):
# 获取当前选中的行
rows = set()
for item in self.table.selectedItems():
rows.add(item.row())
# 如果有多行被选中,则只修改第一行
row = sorted(rows)[0]
# 获取输入框中的数据
name = self.nameEdit.text()
age = self.ageEdit.text()
gender = self.genderEdit.text()
# 修改表格中的数据
self.table.setItem(row, 0, QTableWidgetItem(name))
self.table.setItem(row, 1, QTableWidgetItem(age))
self.table.setItem(row, 2, QTableWidgetItem(gender))
def searchRow(self):
# 获取输入框中的数据
name = self.nameEdit.text()
# 在表格中查找数据
for row in range(self.table.rowCount()):
if self.table.item(row, 0).text() == name:
self.table.selectRow(row)
break
if __name__ == '__main__':
app = QApplication(sys.argv)
editor = ExcelEditor()
editor.show()
sys.exit(app.exec_())
```
在这个程序中,我们创建了一个名为ExcelEditor的类,它继承自QMainWindow,用于显示窗口和界面组件。在构造函数中,我们创建了一个表格控件、四个按钮、三个输入框和三个标签,并设置了它们的布局。我们还通过xlrd库读取了Excel表格,并将数据填充到表格中。
在addRow、delRow、modifyRow和searchRow方法中,我们分别实现了添加、删除、修改和查询操作。其中,添加操作会在表格中添加新行,并将输入框中的数据填充到表格中;删除操作会删除选中的行;修改操作会修改选中的行;查询操作会在表格中查找指定的数据,并选中该行。
最后,在main函数中,我们创建了一个QApplication对象,并将ExcelEditor的实例作为主窗口进行显示。
python读取测试用例
在Python中,有多种方法可以读取测试用例。其中,常用的方法包括使用xlrd、pandas和yaml等第三方库。引用[1]中提到了这三种方法的使用方法和简单分析。
首先,xlrd是一个用于读取Excel文件的库。通过xlrd,可以打开Excel文件并读取其中的测试用例数据。这是接口测试中比较主流的数据读取方式。引用[2]指出,虽然xlrd方法在读取Excel文件中的测试用例方面非常流行,但是当Excel文件中的数据越来越多时,后期测试的维护成本会变得很高,并且在大篇幅数据中,表格格式也不方便阅读。
其次,pandas是一个强大的数据处理库,也可以用于读取Excel文件中的测试用例数据。使用pandas可以更方便地处理和分析数据。然而,对于小规模的测试用例,使用pandas可能会显得过于复杂。
最后,yaml是一种轻量级的数据序列化格式,也可以用于存储和读取测试用例数据。使用yaml可以将测试用例以简洁的文本格式保存,并且易于阅读和维护。
下面是一个使用xlrd库读取Excel文件中测试用例的示例代码,引用[3]提供了一个简单的实例:
```python
import unittest
import xlrd
# 打开接口用例excel文件
excel_data = xlrd.open_workbook('register.xlsx')
# 读取excel文件中存放用例的sheet页,命名无要求
sheet = excel_data.sheet_by_name('register')
print(sheet.nrows)
print(sheet.row_values(1))
# 将读取到的用例全部追加到data列表中
data = []
for i in range(1, sheet.nrows):
data.append(sheet.row_values(i))
print(data)
class register(unittest.TestCase):
def test_register_check(self):
pass
```
以上代码演示了如何使用xlrd库打开Excel文件、读取测试用例数据,并将其追加到一个列表中。然后,可以根据需要在测试类中编写相应的测试方法。
总结起来,Python中可以使用xlrd、pandas和yaml等库来读取测试用例数据,具体选择哪种方法取决于项目的需求和个人偏好。