如何查找excel表是否在系统中使用progress 4GL打开?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何查找excel表是否在系统中使用progress 4GL打开?相关的知识,希望对你有一定的参考价值。

我是progress 4GL的新手。我使用progress 4GL将一些数据导出为CSV文件格式。我面临的问题是,如果我第一次运行该程序,那么就会创建 CSV 文件,但如果我运行另一个程序,在我的机器上保持 CSV 文件打开,那么数据就不会写入同一个 CSV 文件。相反,它给出了错误。我想用一个CSV(sample.csv)文件来存储多个程序的数据。

如果可以通过在我的机器上保持CSV文件打开来写入数据,那么告诉我方法,或者我想知道如果文件打开了(sample.csv),那么我需要给用户一个信息 "请关闭CSV文件"。

我这边的程序我试了一下。我得到的错误附后。

OUTPUT TO "C:UsersastPicturesSaved Picturessample.csv".

EXPORT DELIMITER ";" "CustNum" "Name".
FOR EACH customer NO-LOCK:
   EXPORT DELIMITER ";" Cust-Num Name.
END.
OUTPUT CLOSE.

enter image description here

答案

你不能向文件写入,因为Excel(在这种情况下)对文件有锁定。

你可以发现错误--错误信息中显示了它的编号。

output to c:	empfoo.csv.
put unformatted 'lockme'.
output close.

catch e as progress.lang.error:

   if e:getMessageNum(1) = 98 then 
      message 'please close the file' view-as alert-box.
   else
      undo, throw e.

end catch.

以上是关于如何查找excel表是否在系统中使用progress 4GL打开?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Excel查找大量相似数据?

excel判断表数据是不是存在另一个表中

使用python查找Excel的列中是否存在值

在excel中如何用vba来实现查找特定的字符串?

excel中查找两个表格相同数据的方法

使用powershell查找excel工作表是不是包含数组