小编baa*_*ger的帖子

使用PHPExcel阅读电子表格

我正在尝试上传电子表格并使用PHPExcel将其读入MySQL数据库.

对于.xlsx文件,它工作正常,但每当我尝试上传.ods文件时,它都会抛出错误:PHP致命错误:在PHPExcel_1.7.9/Classes/PHPExcel/Reader /中的非对象上调用成员函数getNamespaces()第341行的OOCalc.php

出了什么问题?

HTML表格:

<form method="post" enctype="multipart/form-data">
Upload File: <input type="file" name="spreadsheet"/>
<input type="submit" name="submit" value="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

PHP(在同一个文件中):

//Check valid spreadsheet has been uploaded
if(isset($_FILES['spreadsheet'])){
if($_FILES['spreadsheet']['name']){
    if(!$_FILES['spreadsheet']['error'])
    {

        $inputFile = $_FILES['spreadsheet']['name'];
        $extension = strtoupper(pathinfo($inputFile, PATHINFO_EXTENSION));
        if($extension == 'XLSX' || $extension == 'ODS'){

            //Read spreadsheeet workbook
            try {
                 $inputFile = $_FILES['spreadsheet']['tmp_name'];
                 $inputFileType = PHPExcel_IOFactory::identify($inputFile);
                 $objReader = PHPExcel_IOFactory::createReader($inputFileType);
                 $objPHPExcel = $objReader->load($inputFile);
            } catch(Exception $e) {
                    die($e->getMessage());
            }

            //Get worksheet dimensions
            $sheet = $objPHPExcel->getSheet(0); 
            $highestRow = $sheet->getHighestRow(); 
            $highestColumn = $sheet->getHighestColumn();

            //Loop …
Run Code Online (Sandbox Code Playgroud)

php phpexcel

9
推荐指数
1
解决办法
3万
查看次数

两个范围之间的差异

我可以找到关于'Union'和'Intersect'VBA方法的大量问题和示例,但我找不到任何关于'Set Difference'方法的内容?这是否存在(除了使用union和intersect的组合之外)?

我试图找到一种简单的方法,让所有range1排除任何range1重叠range2而不知道任何一个范围的大小或形状.

任何帮助将不胜感激.

编辑.

在此输入图像描述

尝试解决方案,其中rng1是红色部分,rng2是蓝色部分(已调试以检查这些是正确的):

rng = SetDifference(rng, highlightedColumns)

Function SetDifference(Rng1 As Range, Rng2 As Range) As Range
On Error Resume Next
If Application.Intersect(Rng1, Rng2).Address <> Rng2.Address Then
    Exit Function
On Error GoTo 0
Dim aCell As Range
For Each aCell In Rng1
    Dim Result As Range
    If Application.Intersect(aCell, Rng2) Is Nothing Then
        Set Result = Union(Result, aCell)
        End If
    Next aCell
Set SetDifference = Result
End If
End Function
Run Code Online (Sandbox Code Playgroud)

theory vba range set excel-vba

6
推荐指数
2
解决办法
1万
查看次数

在前窗口的选项卡 2 中返回终端出现错误:无法获取窗口 1 的选项卡 2。(-1728)自 High Sierra 更新以来

正如标题所说,我有一个可以执行以下操作的苹果脚本:

in tab 2 of front window
Run Code Online (Sandbox Code Playgroud)

以前工作正常,但自从 High Sierra 升级返回:

Terminal got an error: Can’t get tab 2 of window 1. (-1728)
Run Code Online (Sandbox Code Playgroud)

这对应于errAENoSuchObject我找不到任何关于此更改的文档 - 这是一个错误吗?有没有新的或更好的方法来做到这一点?

terminal applescript macos-high-sierra

5
推荐指数
1
解决办法
2425
查看次数

隐藏单个自定义功能区按钮

我有一个自定义excel功能区和一个excel加载项,其中包含一个在打开工作簿时实例化一次的类.根据类的某些属性,我需要隐藏自定义功能区中的某些按钮(所有按钮都在同一个选项卡中).

我的自定义功能区是:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="loadCustom">
<ribbon>
<tabs>
<tab id="tab1" label="customTab" getVisible="GetVisible" tag="myTab">
<group id="grp1" label="Group1" imageMso="ViewFullScreenView" getVisible="GetVisible">
    <button id="Bt1" size="large" label="Button1" imageMso="AccessListIssues" onAction="runBt1" visible="true"/>
    <button id="Bt2" size="large" label="Button2" imageMso="AccessListTasks" onAction="runBt2" visible="true"/>
    <button id="Bt3" size="large" label="Button3" imageMso="ControlLayoutStacked" onAction="runBt3" visible="true"/>
    <button id="Bt4" size="large" label="Button4" imageMso="ControlLayoutTabular" onAction="runBt4" visible="true"/>

</group>
 </tab>
</tabs>
</ribbon>
</customUI>
Run Code Online (Sandbox Code Playgroud)

然后,我在模块中有以下VBA宏来加载自定义功能区和/或禁用它:

Public Sub loadCustom(ribbon As IRibbonUI)

    Set RibUI = ribbon

    If workbookTitle = "myWorkbook" Then
        MyTag = "show"
    Else
        MyTag = False
        RefreshRibbon MyTag
    End If

End Sub

Sub GetVisible(control …
Run Code Online (Sandbox Code Playgroud)

excel vba ribbon excel-vba

4
推荐指数
1
解决办法
2万
查看次数

是否可以跟踪控制外部程序的线程的进度?

我有一个Java-Gnome GUI,它启动一个单独的线程来运行我没有代码的命令行程序.我想在GUI中显示一个进度条,以显示到目前为止已完成第二个线程的百分比.

鉴于我/我的程序无法控制外部程序这是可能的还是我坚持不确定的脉冲进度条?谢谢

java multithreading

2
推荐指数
1
解决办法
372
查看次数

当用户在Excel中启用宏时触发我的宏代码

由于默认情况下禁用宏(默认情况下不启用它们)每当我打开包含宏的excel工作表时,我会弹出一个询问我是否要启用宏的弹出窗口.是否可以捕获此弹出窗口的"确定"按钮按下事件并运行宏.

即如果用户选择启用宏,那么我的宏应该运行以响应.

excel vba excel-vba

2
推荐指数
1
解决办法
4273
查看次数