鱼C论坛

 找回密码
 立即注册
查看: 551|回复: 15

Wps问题求教~~

[复制链接]
发表于 2024-3-23 07:34:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问用Pyside6能不能判断用户电脑安装的是wps还是Office?

然后在用户指定工作簿后用wps或者excel来打开xls或者xlsx工作簿。

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-23 07:35:08 | 显示全部楼层
可以使用PyWin32库来判断用户电脑上安装的是WPS还是Office,然后根据结果选择相应的程序来打开工作簿。

首先,你需要安装PyWin32库。在命令行中运行以下命令安装:
pip install pywin32

接下来,可以使用以下代码来判断用户电脑上安装的是WPS还是Office:
import win32com.client

def check_office_version():
    try:
        excel = win32com.client.Dispatch("Excel.Application")
        return "Office"
    except Exception:
        wps = win32com.client.Dispatch("kwps.Application")
        return "WPS"

version = check_office_version()
print(f"用户电脑安装的是:{version}")

然后,你可以让用户指定要打开的工作簿,根据用户选择的版本来用相应的程序来打开文件:
def open_workbook(file_path):
    if version == "Office":
        excel = win32com.client.Dispatch("Excel.Application")
        workbook = excel.Workbooks.Open(file_path)
        excel.Visible = True
    else:
        wps = win32com.client.Dispatch("kwps.Application")
        workbook = wps.Documents.Open(file_path)

file_path = input("请输入要打开的工作簿的路径:")
open_workbook(file_path)

这样,根据用户电脑上安装的是WPS还是Office,程序会自动选择使用相应的软件打开工作簿。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-23 07:38:50 | 显示全部楼层
FishC 发表于 2024-3-23 07:35
可以使用PyWin32库来判断用户电脑上安装的是WPS还是Office,然后根据结果选择相应的程序来打开工作簿。

...

那如果用户电脑 上Wps和Office都安装了,能不能实现让用户指定打开工作簿的方式呢?

比如说当用户指定一个工作簿后,让用户指定打开此工作簿的方式(wps或者office)?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-23 07:39:01 | 显示全部楼层
凊风 发表于 2024-03-23 07:38
那如果用户电脑 上Wps和Office都安装了,能不能实现让 ...


当用户电脑上同时安装了WPS和Office时,可以让用户指定打开工作簿的方式。你可以使用`input()`函数来接收用户输入。根据用户的选择,使用相应的程序来打开工作簿。下面是一个示例代码:
import os
import win32com.client

def open_workbook(file_path, program):
    if program == "wps":
        wps = win32com.client.Dispatch("kwps.Application")
        workbook = wps.Documents.Open(file_path)
        wps.Visible = True
    else:
        excel = win32com.client.Dispatch("Excel.Application")
        workbook = excel.Workbooks.Open(file_path)
        excel.Visible = True

file_path = input("请输入要打开的工作簿的路径:")
program = input("请输入要打开工作簿的程序(请输入'wps'或者'office'):")

if not os.path.exists(file_path):
    print("文件不存在!")
else:
    open_workbook(file_path, program)

通过以上代码,用户可以先输入要打开的工作簿的路径,然后再输入要使用的程序('wps'或者'office'),程序会根据用户的选择来打开工作簿。注意,输入的程序名称必须为小写。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-23 07:41:52 | 显示全部楼层
FishC 发表于 2024-3-23 07:39
当用户电脑上同时安装了WPS和Office时,可以让用户指定打开工作簿的方式。你可以使用`input()`函数来接 ...

如果把用户电脑所安装的wps和officer用下拉框列出来让用户选择,是不是比让用户输入'wps'或者'office' 更方便?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-23 07:42:05 | 显示全部楼层
凊风 发表于 2024-03-23 07:41
如果把用户电脑所安装的wps和officer用下拉框列出来让 ...


是的,使用下拉框让用户选择安装的WPS或者Office会更方便和用户友好。你可以使用`PyQt5`库中的`QComboBox`来创建下拉框,并将安装的程序选项添加到下拉框中。下面是一个示例代码:from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QComboBox, QPushButtonimport win32com.clientdef open_workbook():    file_path = file_path_label.text()    program = combo_box.currentText()    if program == "WPS":        wps = win32com.client.Dispatch("kwps.Application")        workbook = wps.Documents.Open(file_path)        wps.Visible = True    else:        excel = win32com.client.Dispatch("Excel.Application")        workbook = excel.Workbooks.Open(file_path)        excel.Visible = Trueapp = QApplication([])window = QMainWindow()window.setWindowTitle("打开工作簿")file_path_label = QLabel("工作簿路径:", window)file_path_label.move(20, 20)combo_box = QComboBox(window)combo_box.addItem("WPS")combo_box.addItem("Office")combo_box.move(100, 20)open_button = QPushButton("打开", window)open_button.move(20, 60)open_button.clicked.connect(open_workbook)window.show()app.exec_()通过以上代码,程序会显示一个窗口,窗口包含一个用于输入工作簿路径的标签、一个下拉框以供用户选择程序、一个"打开"按钮。当用户点击"打开"按钮时,根据用户选择的程序来打开工作簿。用户只需在下拉框中选择想要的程序即可,无需手动输入程序名称。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-23 07:43:07 | 显示全部楼层
FishC 发表于 2024-3-23 07:42
是的,使用下拉框让用户选择安装的WPS或者Office会更方便和用户友好。你可以使用`PyQt5`库中的`QComboB ...

回复请注意python格式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-23 07:43:21 | 显示全部楼层
凊风 发表于 2024-03-23 07:43
回复请注意python格式


非常抱歉,下面是更符合Python格式的代码:
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QComboBox, QPushButton
import win32com.client

def open_workbook():
    file_path = file_path_label.text()
    program = combo_box.currentText()
    if program == "WPS":
        wps = win32com.client.Dispatch("kwps.Application")
        workbook = wps.Documents.Open(file_path)
        wps.Visible = True
    else:
        excel = win32com.client.Dispatch("Excel.Application")
        workbook = excel.Workbooks.Open(file_path)
        excel.Visible = True

app = QApplication([])
window = QMainWindow()
window.setWindowTitle("打开工作簿")

file_path_label = QLabel("工作簿路径:", window)
file_path_label.move(20, 20)

combo_box = QComboBox(window)
combo_box.addItem("WPS")
combo_box.addItem("Office")
combo_box.move(100, 20)

open_button = QPushButton("打开", window)
open_button.move(20, 60)
open_button.clicked.connect(open_workbook)

window.show()
app.exec_()

希望这次的回答更符合你的要求!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-23 07:46:04 | 显示全部楼层
FishC 发表于 2024-3-23 07:43
非常抱歉,下面是更符合Python格式的代码:

对不起,我用的是PySide6,不是PyQt5.....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-23 07:46:14 | 显示全部楼层
凊风 发表于 2024-03-23 07:46
对不起,我用的是PySide6,不是PyQt5.....


非常抱歉犯了同样的错误。下面是使用PySide6库进行编写的代码:
import win32com.client
from PySide6.QtWidgets import QApplication, QMainWindow, QLabel, QComboBox, QPushButton

def open_workbook():
    file_path = file_path_label.text()
    program = combo_box.currentText()
    if program == "WPS":
        wps = win32com.client.Dispatch("kwps.Application")
        workbook = wps.Documents.Open(file_path)
        wps.Visible = True
    else:
        excel = win32com.client.Dispatch("Excel.Application")
        workbook = excel.Workbooks.Open(file_path)
        excel.Visible = True

app = QApplication([])
window = QMainWindow()
window.setWindowTitle("打开工作簿")

file_path_label = QLabel("工作簿路径:", window)
file_path_label.move(20, 20)

combo_box = QComboBox(window)
combo_box.addItem("WPS")
combo_box.addItem("Office")
combo_box.move(100, 20)

open_button = QPushButton("打开", window)
open_button.move(20, 60)
open_button.clicked.connect(open_workbook)

window.show()
app.exec_()

请注意,将`PyQt5`替换为`PySide6`在代码里进行了调整。同样,如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-11 22:38:41 | 显示全部楼层
那我要是想打开一个xls文件然后另存为要怎么办呀?@FishC
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-11 22:38:58 | 显示全部楼层
盖世嘤雄 发表于 2024-05-11 22:38
那我要是想打开一个xls文件然后另存为要怎么办呀?@Fi ...


要打开一个xls文件并另存为,你可以使用Python中的pandas库来完成。首先,你需要安装pandas库(如果尚未安装)。

然后,你可以使用以下代码来实现:
import pandas as pd

# 打开Excel文件
data = pd.read_excel('your_file.xls')

# 进行数据处理或其他操作...

# 另存为新的Excel文件
new_file_name = 'new_file.xls'
data.to_excel(new_file_name, index=False)

在上面的代码中,你需要将'your_file.xls'替换为你要打开的Excel文件的路径。然后,你可以在代码的适当位置进行数据处理或其他操作。

最后,通过将数据保存到新的Excel文件中实现另存为操作。你需要将'new_file.xls'替换为你想要保存的新文件的路径和名称。

请确保在运行代码之前,已经安装了pandas库,并且将文件路径替换为正确的路径。希望这个解决方案对你有帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-11 22:41:21 | 显示全部楼层
我指的是用wps前文中的wps实例打开,就像你之前用打开这样,用的是pywin32模块
    wps = win32com.client.Dispatch("kwps.Application")  
    wb = wps.Documents.Open(excel_file_path)

@FishC
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-11 22:41:38 | 显示全部楼层
盖世嘤雄 发表于 2024-05-11 22:41
我指的是用wps前文中的wps实例打开,就像你之前用打开 ...


你好!使用pywin32模块打开WPS的实例并操作文件是可行的。下面是一个简单的示例代码:
import win32com.client

# 打开WPS应用程序
wps = win32com.client.Dispatch("kwps.Application")

# 打开Excel文件
excel_file_path = r"C:\path\to\your\excel\file.xlsx"
wb = wps.Documents.Open(excel_file_path)

# 在Excel中进行一些操作(例如读取和修改数据)
sheet = wb.Sheets(1)
value = sheet.Cells(1, 1).Value
sheet.Cells(1, 2).Value = "Hello, World!"

# 保存并关闭Excel文件
wb.Save()
wb.Close()

# 关闭WPS应用程序
wps.Quit()

请注意,您需要安装pywin32模块,可以使用以下命令进行安装:
pip install pywin32

另外,在这个示例中,我使用的方法是索引方式打开Excel文件中的第一个工作表 `Sheets(1)`,您可以根据自己的需求修改相关代码来满足您的需求。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-11 22:44:16 | 显示全部楼层
你错了 你调用的是wps中类似word的文字输入实例,并非表格实例,请检查你的代码@FishC
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-11 22:46:33 | 显示全部楼层
盖世嘤雄 发表于 2024-05-11 22:44
你错了 你调用的是wps中类似word的文字输入实例,并非 ...


非常抱歉,可能是我理解错了你的问题。如果你想要创建一个表格实例,可以使用Python中的pandas库。下面是一个简单的例子:
import pandas as pd

# 创建一个空的DataFrame
df = pd.DataFrame()

# 添加列数据
df['姓名'] = ['张三', '李四', '王五']
df['年龄'] = [20, 25, 30]
df['性别'] = ['男', '女', '男']

# 打印表格
print(df)

这段代码会创建一个包含姓名、年龄和性别的表格,并打印出来。你可以根据自己的需要进行修改和扩展。希望能帮到你!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 16:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表