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 崩溃

LibreOffice 段落光标在空行时卡住

如何使用 C# 和 LibreOffice/OpenOffice 在电子表格单元格中设置粗体文本?

有没有办法像使用 C# 的 MS Office Excel 一样创建/读取 LibreOffice 电子表格?

为啥 libreoffice sdk 在通过 Web 服务同时创建文档时会崩溃?