.Net MVC возвращает файл

Я думаю, что split делает именно то, что вы хотите.

Обратите внимание, что X - это список кадров данных, как видно из str:

X <- split(df, df$g)
str(X)

вы хотите, чтобы отдельный объект с именами группы g вы могли присваивать элементам X из split объектам этих имен, хотя это кажется дополнительной работой, когда вы можете просто индексировать кадры данных из списка split.

#I used lapply just to drop the third column g which is no longer needed.
Y <- lapply(seq_along(X), function(x) as.data.frame(X[[x]])[, 1:2]) 

#Assign the dataframes in the list Y to individual objects
A <- Y[[1]]
B <- Y[[2]]
C <- Y[[3]]
D <- Y[[4]]
E <- Y[[5]]

#Or use lapply with assign to assign each piece to an object all at once
lapply(seq_along(Y), function(x) {
    assign(c("A", "B", "C", "D", "E")[x], Y[[x]], envir=.GlobalEnv)
    }
)

Изменить Или даже лучше, чем использовать lapply для назначения глобальной среде использования list2env:

names(Y) <- c("A", "B", "C", "D", "E")
list2env(Y, envir = .GlobalEnv)
A
0
задан ffejrekaburb 21 March 2019 в 17:53
поделиться

1 ответ

Все, что вам нужно сделать, это вернуть File:

public IActionResult SampleFileReport()
{
    // do stuff

    return File(bytes, mimetype, filename);
}

File также имеет перегрузки, которые принимают Stream и string (путь и имя файла к файлу в файловой системе) в дополнение к byte[]. mimetype - это ваш тип контента, например, application/pdf, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (Excel) и т. Д. Последний параметр filename является необязательным. Если он предоставлен, заголовок Content-Disposition: attachment отправляется с ответом, который предлагает браузеру открыть диалоговое окно загрузки. В противном случае используется значение по умолчанию Content-Disposition: inline, и браузер будет пытаться загрузить возвращаемый файл непосредственно во вкладку / окно браузера, предполагая, что mime-тип поддерживается для нативного рендеринга браузера. Если нет, то вы получите диалог загрузки, независимо от того.

0
ответ дан Chris Pratt 21 March 2019 в 17:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: