現在、私はC#とAsp.Net MVCを使用しているWebアプリケーションで作業しています。ページの1つに、ユーザーがファイルをダウンロードして関連するデータを入力してアップロードできる要件があります。古いマシンを使用しているユーザーのため、私は.xls
と.xlsx
で作業しています。どのファイルをダウンロードできるかは、ユーザーが選択しなければならないドロップダウン値に基づいています。同じメソッドを使用して別のファイルをダウンロードする
.xls
とxlsx
の2つのボタンがあります。私の質問は、どのようにファイル間を交換するために同じバックエンドコードを使用することです。したがって、.xls
がクリックされた場合、ユーザは.xls
ファイルを取得し、他方がクリックすると、.xlsx
ファイルを受信します。
これは、これまでの私のコードです:
public FileResult DownloadTemplates(string policyType)
{
string templateName = string.Empty;
string baseDirectory = "base path";
string templateDirectory = "temnplate directory path";
switch (policyType)
{
case "Administrative":
templateName = "Admin Xls File"; //How can I swap between the .xls and .xlsx file?
break;
case "Policy":
templateName = "Policy Xls File"; //How can I swap between the .xls and .xlsx file?
break;
case "Consignment":
templateName = "Consignment Xls File"; //How can I swap between the .xls and .xlsx file?
break;
case "Quality":
templateName = "Quality Xls file"; //How can I swap between the .xls and .xlsx file?
break;
default:
templateName = string.Empty;
break;
}
string filePath = Path.Combine(baseDirectory, templateDirectory, templateName);
byte[] fileData = System.IO.File.ReadAllBytes(filePath);
string contentType = MimeMapping.GetMimeMapping(filePath);
return File(fileData, contentType);
}
このメソッドは、XLSまたはXLSXであるかどうかをどのように認識しますか?あなたはこれのためのパラメータを渡したようではなく、どのボタンがクリックされたかを見るための '送信者 'はありません。新しいバージョンのExcelがこのファイルを開くので、どちらの場合でもXLSを提供しないでください。なぜあなたは両方を必要としますか? – Equalsk