Excelテーブルを読み込むためにLinqをExcelライブラリに使用しています。今までは、それがローカルに良い仕事をしていた、方法ExcelQueryFactoryはこの方法でエクセルのルートを取得します:私は休憩APIのオンラインそれを使用したいと思い、今URL絶対パスはLinqで動作しませんサーバー上のExcelに。 c#
var book = new ExcelQueryFactory(@"C:\data.xls");
、POSTは、Excelのアップロードに使用しましただから、
[HttpPost]
[Route("Upload")]
public Task<HttpResponseMessage> UploadFile() {
List<string> savedFilePath = new List<string>();
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
string rootPath = HttpContext.Current.Server.MapPath("~/UploadedFiles");
var provider = new MultipartFileStreamProvider(rootPath);
var task = Request.Content.ReadAsMultipartAsync(provider).
ContinueWith<HttpResponseMessage>(t =>
{
if (t.IsCanceled || t.IsFaulted)
{
Request.CreateErrorResponse(HttpStatusCode.InternalServerError, t.Exception);
}
foreach (MultipartFileData item in provider.FileData)
{
try
{
string name = item.Headers.ContentDisposition.FileName.Replace("\"", "");
string newFileName = Guid.NewGuid() + Path.GetExtension(name);
Debug.WriteLine(item.LocalFileName);
File.Move(item.LocalFileName, Path.Combine(rootPath, newFileName));
Uri baseuri = new Uri(Request.RequestUri.AbsoluteUri.Replace(Request.RequestUri.PathAndQuery, string.Empty));
//RELATIVE PATH
string fileRelativePath = "~/UploadedFiles/" + newFileName;
//LeerExcel(fileRelativePath);
//ABSOLUTE PATH
Uri fileFullPath = new Uri(baseuri, VirtualPathUtility.ToAbsolute(fileRelativePath));
savedFilePath.Add(fileFullPath.ToString());
//LeerExcel(savedFilePath[0]);
}
catch (Exception ex)
{
string message = ex.Message;
}
}
// string rutaFin = "~" + savedFilePath[0];
// string rest = rutaFin.Replace("http://localhost:56618", "");
// LeerExcel(rest);
return Request.CreateResponse(HttpStatusCode.Created, savedFilePath);
});
return task;
}
、ExcelQueryFactory弦ルートのサーバーの作業上、手動で絶対パスまたは相対パスどちらもExcelを選択して:ウェブAPIに次のようです。 ABSOLUTE:
ルートは以下の通りです。この方法で取得 http://localhost:56618/UploadedFiles/9a27e785-e486-4807-8a80-7abb9b940d8b.xls
と相対:
/UploadedFiles/9a27e785-e486-4807-8a80-7abb9b940d8b.xls
は、私が好きな方法で使用することはできますか?サーバーがオンラインの間、取得された絶対パスはアクセス可能です。そのURLにアクセスすると、ファイルがダウンロードされます。