我正在将文件发送到浏览器以保存在本地。这在除 Microsoft Edge 之外的所有浏览器中都可以正常工作,它用 guid 替换文件名。必须使用特定文件名下载文件,是否有针对此问题的解释或解决方法?我的回答“不要使用 Edge”将被拒绝。
var response = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new ByteArrayContent(CreateFile(fileContents))
};
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = string.Concat(fileName, ".xlsx")
};
Run Code Online (Sandbox Code Playgroud) 我正在使用DocumentFormat.OpenXml读取 Excel 电子表格。我有一个性能瓶颈,用于从SharedStringTable对象中查找单元格值的代码(它似乎是某种单元格值的查找表):
var returnValue = sharedStringTablePart.SharedStringTable.ChildElements.GetItem(parsedValue).InnerText;
Run Code Online (Sandbox Code Playgroud)
我创建了一个字典以确保我只检索一次值:
if (dictionary.ContainsKey(parsedValue))
{
return dictionary[parsedValue];
}
var fetchedValue = sharedStringTablePart.SharedStringTable.ChildElements.GetItem(parsedValue).InnerText;
dictionary.Add(parsedValue, fetchedValue);
return fetchedValue;
Run Code Online (Sandbox Code Playgroud)
这将性能时间减少了近 50%。但是,我的指标表明,从SharedStringTable对象中获取值的代码行执行 123,951 次仍然需要 208 秒。有没有其他方法可以优化这个操作?