0

有什么方法可以从 Office Web 应用程序中删除按钮或完整的功能区。我想删除下载、添加到一个驱动器等。

示例网址如下

https://view.officeapps.live.com/op/view.aspx?src=www.cse.lehigh.edu%2F~glennb%2Foose%2Fppt%2FCsharp_dotNET.ppt

4

3 回答 3

1

您必须将相应的 css 文件编辑为:.Class 或 #ID 等。 display: none;

Word 可以在以下位置找到:“[此处驱动器]:\microsoftwebapps\WebOneNote\Resources\1033\WordEditor.css”

Excel 可以在以下位置找到:“[此处驱动器]:\microsoftwebapps\ExcelServicesWfe_layouts\styles\excelribbon.css”

PowerPoint 可以在以下位置找到:“[此处驱动器]:\microsoftwebapps\WebPPTViewer\pptresources\1033\stylesEdit.css”

我使用 IE 的 DOM 资源管理器来定位我想要删除的按钮的特定类和 ID。

祝你好运,这是一个巨大的痛苦

一个例子是

“#btnOpenInClient{显示:无;}”

这是我的第一个答案。我真的没有时间格式化,但它应该会有所帮助。我真的只是为我的 OWA 做了这个

于 2017-03-31T17:09:41.643 回答
0

除了“不,这不可能”之外,没有其他有用的方式来表达这一点。只有客户端 Office 应用程序允许 UI 自定义,但仅限于隐藏或禁用功能区组件。

于 2016-07-11T22:11:12.390 回答
0

下面的 powershell 脚本应该可以达到目的:请根据您的目的调整 $hideElements 数组。

添加自定义 css 以隐藏文件菜单中的多个选项(信息、另存为、打印、共享、退出) OWA CSS 文件将被修改:WordEditor.css、WordViewer.css、stylesEdit.css、stylesRead.css、ExcelFrame.css

param (
    [Parameter(Mandatory=$true)][string]$action
)
$action = $action.ToLower()
$acceptedActions = "apply","rollback"

if ($acceptedActions -notcontains $action) {
    throw "Invalid action. Accepted actions: apply,rollback"
}

$owaPath = "C:\Program Files\Microsoft Office Web Apps"

$hideElements = "#_x{} a[id$=Save-Menu32]{display:none;} a[id$=SaveAs-Menu32]{display:none;} a[id$=Print-Menu32]{display:none;} a[id$=Share-Menu32]{display:none;} a[id$=Close-Menu32]{display:none;} #btnOpenInClient-Medium{display:none;} #btnFileSharing-Medium{display:none;}";

$cssFiles =  "$owaPath\WebOneNote\Resources\1033\WordEditor.css", "$owaPath\WebPPTViewer\pptresources\1033\stylesEdit.css", "$owaPath\WebWordViewer\Resources\1033\WordViewer.css", "$owaPath\WebPPTViewer\pptresources\1033\stylesRead.css", $owaPath\ExcelServicesWfe\_layouts\1033\styles\ExcelFrame.css"

function ApplyPatch($cssFile, $hideElements) {
    if(-Not (Get-Content $cssFile).Contains($hideElements)) {
        $cssBackupFile = "$cssFile.bak"
        Copy-Item -Path $cssFile -Destination $cssBackupFile -Force
        Add-Content $cssFile $hideElements
        Write-Host "Patch applied on $cssFile"
    } else {
        Write-Warning "Patch already applied on $cssFile."
    }
}

function RollbackPatch($cssFile, $hideElements) {
    $cssBackupFile = "$cssFile.bak"
    if((Test-Path $cssBackupFile) -eq 1) {
       Copy-Item -Path $cssBackupFile -Destination $cssFile -Force
       Remove-Item $cssBackupFile
       Write-Host "Rollback applied on $cssFile"
    } else {
       Write-Warning "Missing backup file for $cssFile. Cannot rollback"
    }
}

If($action -eq "apply") {
    foreach ($cssFile in $cssFiles) {
        ApplyPatch $cssFile $hideElements
    }
}

If($action -eq "rollback") {
    foreach ($cssFile in $cssFiles) {
        RollbackPatch $cssFile $hideElements
    }
}
于 2019-09-30T08:51:38.547 回答