LibreOffice 停止工作,同时使用 C# 应用程序将 XLS 转换为 XHTML 文件
Posted
技术标签:
【中文标题】LibreOffice 停止工作,同时使用 C# 应用程序将 XLS 转换为 XHTML 文件【英文标题】:LibreOffice Stopped working , while converting XLS to XHTML files using C# application 【发布时间】:2017-03-17 12:29:25 【问题描述】:在此,我的查询是,
如何在 C# 中处理 LibreOffice 异常。 如果无法处理,如何在执行控制台时以编程方式关闭此异常或抑制此异常弹出窗口 或任何更好的解决方案,即我的转换过程不应因 Libre Office 引起的未处理异常而停止。【问题讨论】:
使用 try catch 子句来获得更具体的错误将是一个开始 如果你问的是如何处理异常,你应该看看 try...catch 语句。 发生错误的 C# 代码中的哪一行 - 也许是系统调用? 【参考方案1】:从图片来看,异常是从storeToUrl() 中的https://github.com/caolanm/unoconv/blob/master/unoconv 代码中抛出的。
unoconv
是一个命令行工具,而不是一个库,因此使用 try/catch 块似乎无法捕获错误。也许您可以捕获进程的错误流并对其进行解析以查看是否发生异常。
最好使用 UNO API 在 C# 中直接调用 storeToUrl()
,而不是使用 unoconv
,并为 com.sun.star.io.IOException 使用 try/catch。
在使用 LibreOffice 进行许多自动转换时,通常需要在进程卡住时终止进程:https://github.com/dagwieers/unoconv/issues/352。
【讨论】:
【参考方案2】:首先,感谢大家的热心帮助.. :)。终于解决了。
在批量文件转换时,我的 c# 进程被中断,因为 LibreOffice 进程(soffice)中发生了一些异常。所以我开始杀死我的 c# 进程及其子进程,也杀死了 soffice。因此,对于下一个文件,正在创建新的 soffice,因为我执行了 unoconv 命令。
但是,我仍然收到异常弹出窗口,但 c# 进程仍在继续.. this code 帮助我
【讨论】:
以上是关于LibreOffice 停止工作,同时使用 C# 应用程序将 XLS 转换为 XHTML 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何添加空格和标点符号以使用正则表达式捕获第一组?如何在 LibreOffice 中停止某些选项卡分为两列?
如何使用 C# 和 LibreOffice/OpenOffice 在电子表格单元格中设置粗体文本?