小编Nei*_*mby的帖子

Microsoft Edge 忽略内容处置响应标头的 FileName 属性?

我正在将文件发送到浏览器以保存在本地。这在除 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)

c# microsoft-edge httpresponsemessage

5
推荐指数
1
解决办法
2039
查看次数

如何提高从 OpenXml Excel 电子表格工具中的 SharedStringTable 检索值的性能?

我正在使用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 秒。有没有其他方法可以优化这个操作?

.net c# excel openxml

2
推荐指数
1
解决办法
1813
查看次数

标签 统计

c# ×2

.net ×1

excel ×1

httpresponsemessage ×1

microsoft-edge ×1

openxml ×1