(必要性がにあれば変更パスを)直接EXCEL.EXE
を呼び出すようにしてください:
string filePath = @"c:\Temp\export.XLSX";
// For me this generates: C:\\Program Files\\Microsoft Office\\Office14\\EXCEL.EXE
var exec = System.IO.Path.Combine(
Environment.GetEnvironmentVariable("ProgramW6432"),
"Microsoft Office", "Office14", "EXCEL.EXE");
Process.Start(fileName: exec, arguments: filePath);
UPDATE
あなたは(他のプロパティの中で)取得するシェルAssocQueryString機能を使用して、実行可能ファイルを入手することができ、実行可能拡張に関連付けられたファイル。ここではそれを使用するC#の上の方法があります:
[Flags]
public enum AssocF
{
Init_NoRemapCLSID = 0x1,
Init_ByExeName = 0x2,
Open_ByExeName = 0x2,
Init_DefaultToStar = 0x4,
Init_DefaultToFolder = 0x8,
NoUserSettings = 0x10,
NoTruncate = 0x20,
Verify = 0x40,
RemapRunDll = 0x80,
NoFixUps = 0x100,
IgnoreBaseClass = 0x200
}
public enum AssocStr
{
Command = 1,
Executable,
FriendlyDocName,
FriendlyAppName,
NoOpen,
ShellNewValue,
DDECommand,
DDEIfExec,
DDEApplication,
DDETopic
}
public static class FileAssocHelper
{
[DllImport("Shlwapi.dll", SetLastError = true, CharSet = CharSet.Auto)]
static extern uint AssocQueryString(AssocF flags, AssocStr str, string pszAssoc, string pszExtra, [Out] StringBuilder pszOut, [In][Out] ref uint pcchOut);
public static string FileExtensionInfo(AssocStr assocStr, string doctype)
{
uint pcchOut = 0;
AssocQueryString(AssocF.Verify, assocStr, doctype, null, null, ref pcchOut);
StringBuilder pszOut = new StringBuilder((int)pcchOut);
AssocQueryString(AssocF.Verify, assocStr, doctype, null, pszOut, ref pcchOut);
return pszOut.ToString();
}
}
今、私たちは、実行可能ファイルを検索することができ、オープンExcelファイル:
string filePath = @"c:\Temp\Results.xlsx";
string exec = FileAssocHelper.FileExtensionInfo(AssocStr.Executable, ".xlsx");
Process.Start(exec, filePath);
は私の謝罪を@mjwills、あまりにも多くの方法がありますが、私は情報を戦いましたパッケージを再インストールすることで十分でしょう。私の[編集](https://stackoverflow.com/q/48005685/7517846)の質問 – Yollo
@mjwills '' C:\\ Users \\ net \\ Desktop \\ Excel TESTING \ \ OperatorStatisticsData.xlsx "' downvoteの必要はありません – Yollo
@mjwillsはそれを試しましたが、私が言及したのと同じですが面白いことは、データが – Yollo