python xlrd读取excel数据实例
时间: 2023-11-03 17:05:00 浏览: 28
import xlrd
# 打开Excel文件
workbook = xlrd.open_workbook('example.xls')
# 获取所有sheet名称
sheet_names = workbook.sheet_names()
print('所有sheet名称:', sheet_names)
# 获取第一个sheet对象
sheet1 = workbook.sheet_by_index(0)
# 获取行数和列数
nrows = sheet1.nrows
ncols = sheet1.ncols
print('行数:', nrows)
print('列数:', ncols)
# 获取第一行数据
row1 = sheet1.row_values(0)
print('第一行数据:', row1)
# 获取第一列数据
col1 = sheet1.col_values(0)
print('第一列数据:', col1)
# 获取单元格数据
cell_value = sheet1.cell_value(1, 1)
print('第2行第2列单元格数据:', cell_value)
# 循环输出所有数据
for i in range(nrows):
for j in range(ncols):
cell_value = sheet1.cell_value(i, j)
print('第{}行第{}列单元格数据:{}'.format(i+1, j+1, cell_value))
相关问题
python 中怎么使用xlrd库读取excel文件?
使用xlrd库读取Excel文件的步骤如下:
1. 安装xlrd库,需要下载1.2.0版本,因为2.0.1版本只支持.xls文件:
```python
pip uninstall xlrd # 如果之前已安装旧版本,需要卸载原先的版本
pip install xlrd==1.2.0 # 下载1.2.0版本
```
2. 打开Excel文件
```python
import xlrd
data = xlrd.open_workbook('./36.xlsx') # 打开文件
```
3. 查看Excel文件中的工作表
```python
data.sheet_names() # 返回值为列表类型
```
4. 读取Excel文件中的数据
```python
# 获取工作表,其中0表示工作表的索引号
table = data.sheets()
# 获取行数和列数
nrows = table.nrows # 获取行数
ncols = table.ncols # 获取列数
# 读取单元格数据
cell_A1 = table.cell(0, 0).value # 读取第1行第1列的单元格
cell_C4 = table.cell(2, 3).value # 读取第3行第4列的单元格
```
参考文献:
python——使用xlrd库读取excel表格数据。 https://blog.csdn.net/qq_38683692/article/details/82474564
Python实例篇:自动操作Excel文件(既简单又特别实用)_python操作excel例子。https://www.jb51.net/article/163727.htm
使用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的实例作为主窗口进行显示。