将 excel 文件导入到 angular - "Unexpected token P in JSON at position 0" 错误
Import excel file to angular - "Unexpected token P in JSON at position 0" error
我在 c# 中使用 webapi 项目并且 angular
我在控制器中实现了一个导出 excel 文件的功能,并在 angular 服务中实现了另一个功能来导入此 excel.
C# 函数非常有用,它创建了一个新的 excel,并将其保存到某个路径中。
问题发生在angular: Unexpected token P in JSON at position 0
这是我的代码:
C# 控制器:
[HttpGet]
[Route("downloadProducts/{userID}")]
public HttpResponseMessage DownloadProducts(int userID)
{
var pathToExcel=WriteExcel.GetPathToProducts(userID);
var buffer = File.ReadAllBytes(pathToExcel);
var stream = new MemoryStream(buffer);
var result = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new ByteArrayContent(stream.ToArray())
};
result.Content.Headers.ContentDisposition =
new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment")
{
FileName = "products.xlsx"
};
result.Content.Headers.ContentType =
new MediaTypeHeaderValue("application/octet-stream");
return result;
}
Angular 服务:
downloadFile (userID:number):Observable<Blob>{
return this.http.get<Blob>(`${this.url}/downloadProducts/${userID}`);
}
Componenet.TS
const EXCEL_TYPE = 'application/octet-stream';
this.productsService.downloadloadFile(this.user.userID).subscribe(data=>{
var file = new Blob([data], { type: EXCEL_TYPE });
this.href = window.URL.createObjectURL(file);
setTimeout(() => {
console.log(this.href);
}, 500);
window.open(this.href);
})
我应该修复什么?
非常感谢。
这里在上面的函数中使用 MIME 类型 text/csv 而不是 application/octet-stream 它可以使用 . xlsx 扩展名。
不要将其转换为 Blob 尝试没有它。
downloadFile (userID:number):Observable<any>{
return this.http.get<any>(`${this.url}/downloadProducts/${userID}`);
}
我在 c# 中使用 webapi 项目并且 angular 我在控制器中实现了一个导出 excel 文件的功能,并在 angular 服务中实现了另一个功能来导入此 excel.
C# 函数非常有用,它创建了一个新的 excel,并将其保存到某个路径中。
问题发生在angular: Unexpected token P in JSON at position 0
这是我的代码:
C# 控制器:
[HttpGet]
[Route("downloadProducts/{userID}")]
public HttpResponseMessage DownloadProducts(int userID)
{
var pathToExcel=WriteExcel.GetPathToProducts(userID);
var buffer = File.ReadAllBytes(pathToExcel);
var stream = new MemoryStream(buffer);
var result = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new ByteArrayContent(stream.ToArray())
};
result.Content.Headers.ContentDisposition =
new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment")
{
FileName = "products.xlsx"
};
result.Content.Headers.ContentType =
new MediaTypeHeaderValue("application/octet-stream");
return result;
}
Angular 服务:
downloadFile (userID:number):Observable<Blob>{
return this.http.get<Blob>(`${this.url}/downloadProducts/${userID}`);
}
Componenet.TS
const EXCEL_TYPE = 'application/octet-stream';
this.productsService.downloadloadFile(this.user.userID).subscribe(data=>{
var file = new Blob([data], { type: EXCEL_TYPE });
this.href = window.URL.createObjectURL(file);
setTimeout(() => {
console.log(this.href);
}, 500);
window.open(this.href);
})
我应该修复什么?
非常感谢。
这里在上面的函数中使用 MIME 类型 text/csv 而不是 application/octet-stream 它可以使用 . xlsx 扩展名。
不要将其转换为 Blob 尝试没有它。
downloadFile (userID:number):Observable<any>{
return this.http.get<any>(`${this.url}/downloadProducts/${userID}`);
}