使用python每三秒运行一个打开两个excel文档并进行比较,如果两个文档不同,输出‘文档改变’并使用文档2覆盖文档一,如果两个文档相同:输出“文档不改变”,最后将文档一的内容以表格的形式制作一个ui的pyqt5程序
时间: 2023-08-22 08:06:43 浏览: 157
利用python处理excel文件的数据
好的,我会尽力回答您的问题。
首先,需要安装openpyxl来处理Excel文档。
```python
pip install openpyxl
```
然后,我们可以使用time.sleep()来实现每三秒运行一次程序。同时,使用openpyxl.load_workbook()方法来加载两个Excel文档,并使用openpyxl.utils.compare.WorksheetCompare()方法来比较两个文档是否相同。如果不同,使用openpyxl.Workbook.copy_worksheet()方法将文档2覆盖文档1,并输出“文档改变”。如果相同,则输出“文档不改变”。
```python
import openpyxl
from openpyxl.utils import compare
import time
while True:
wb1 = openpyxl.load_workbook('doc1.xlsx')
wb2 = openpyxl.load_workbook('doc2.xlsx')
ws1 = wb1.active
ws2 = wb2.active
if compare.WorksheetCompare(ws1, ws2).is_equal():
print('文档不改变')
else:
wb1.copy_worksheet(ws2)
wb1.save('doc1.xlsx')
print('文档改变')
time.sleep(3)
```
最后,使用PyQt5创建一个UI界面,并使用openpyxl.load_workbook()方法将文档1加载到程序中。然后,使用openpyxl.utils.dataframe.dataframe_to_rows()方法将文档1中的内容转换成行,添加到QTableWidget中。
```python
import sys
import openpyxl
from openpyxl.utils.dataframe import dataframe_to_rows
from PyQt5.QtWidgets import QApplication, QWidget, QTableWidget, QTableWidgetItem
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(100, 100, 600, 400)
self.setWindowTitle('Excel Viewer')
self.table = QTableWidget(self)
self.table.setGeometry(50, 50, 500, 300)
self.loadExcel()
def loadExcel(self):
wb = openpyxl.load_workbook('doc1.xlsx')
ws = wb.active
for r, row in enumerate(dataframe_to_rows(ws)):
for c, value in enumerate(row):
item = QTableWidgetItem(str(value))
self.table.setItem(r, c, item)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyApp()
ex.show()
sys.exit(app.exec_())
```
以上就是使用Python实现每三秒运行一个打开两个Excel文档并进行比较,如果两个文档不同,输出“文档改变”并使用文档2覆盖文档1,如果两个文档相同:输出“文档不改变”,最后将文档1的内容以表格的形式制作一个UI的PyQt5程序的方法。
阅读全文