- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 'excelcnv.exe' 将 '.xls' 文件转换为 '.xlsx' 版本。我可以通过直接在我现在工作的机器中引用“excelcnv.exe”位置来做到这一点。
在我当前的机器上,安装了 Office 2016,我直接引用了“excelcnv.exe”所在的位置。目前,对于 Office 2016 版本,它位于 'C:\Program Files (x86)\Microsoft Office\root\Office16' 位置。这取决于 office 版本和 office 安装位置。
mstrExtAddedFilePath = pstrFilePath.Replace(".xls", ".xlsx");
string processFilePath = @"C:\Program Files (x86)\Microsoft Office\root\Office16\excelcnv.exe";
string processArguments = "-oice \"" + pstrFilePath + "\" \"" + mstrExtAddedFilePath + "\"";
Process process = new Process();
process.StartInfo.FileName = processFilePath;
process.StartInfo.Arguments = processArguments;
process.Start();
但是,我想在部署我的 DLL 的机器中动态获取“excelcnv.exe”的位置。部署环境可能安装32位或64位office甚至不同版本的office(2010/2013/2016)
如何获得? 注册表 中是否有可用的关键设置?
或者 excelcnv.exe 的任何其他替代方法 将文件转换为“.xlsx”格式?
最佳答案
我会简单地使用 GetFiles()
在所有目录中搜索此文件,例如像
var files = Directory.GetFiles(
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles),
"excelcnv.exe",
SearchOption.AllDirectories);
如果只有一个匹配项,您可以非常确定它是正确的,否则您可以检查某些模式的完整路径,例如完整路径中必须有 Office。
编辑:围绕这个包装一些逻辑。保存用户设置的路径并在每次运行时从那里加载它。如果 exe 文件不存在 (File.Exist()
) 开始新的搜索。
关于c# - 获取 'excelcnv.exe' 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51999697/
我发现推荐 excelcnv.exe 的帖子作为将 CSV 文件转换为 Excel 文件的一种方式,例如How to export a CSV to Excel using Powershell ,它
我正在使用 'excelcnv.exe' 将 '.xls' 文件转换为 '.xlsx' 版本。我可以通过直接在我现在工作的机器中引用“excelcnv.exe”位置来做到这一点。 在我当前的机器上,安
我使用 Microsoft Office 实用程序创建了一个控制台应用程序:ppcnvcom.exe、excelcnv.exe、wordconv.exe 以转换 doc 到 docx,xls 到 xl
互联网上说您可以使用 Microsoft Office 兼容性将 xlsx 文件转换为 xls 文件,如下所示: "C:\Program Files\Microsoft Office\Office14
我是一名优秀的程序员,十分优秀!