위의 코드에서 "excelFilename"을 전달해야하는 것은 무엇입니까?
Azure에서는 Azure Blob Storage에 Excel 파일을 저장하는 것이 좋습니다. 코드를 기반으로 메모리 스트림에서 호스팅되는 새로운 Excel을 만들 수 있습니다. 이 엑셀 파일에 데이터를 작성한 후 Blob 저장소에 메모리 스트림을 업로드 할 수 있습니다. 아래 코드는 참조 용입니다.
public static bool CreateExcelDocument(DataSet ds, string fileName)
{
try
{
MemoryStream ms = new MemoryStream();
using (SpreadsheetDocument document = SpreadsheetDocument.Create(ms, SpreadsheetDocumentType.Workbook))
{
WriteExcelFile(ds, document);
}
//You need to create a storage account and put your azure storage connection string in following place
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("put your azure storage connection string here");
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("excelfilecontainer");
container.CreateIfNotExists();
CloudBlockBlob blockBlob = container.GetBlockBlobReference(fileName);
ms.Position = 0;
blockBlob.UploadFromStream(ms);
return true;
}
catch (Exception ex)
{
return false;
}
}
위 방법을 사용하려면 두 번째 매개 변수에 파일 이름을 입력하기 만하면됩니다.
CreateExcelDocument(ds, "abc.xlsx");
그런 다음 blob 저장소의 excelfilecontainer에 abc.xlsx라는 파일이 생성됩니다. Azure Storage Explorer 또는 Azure Storage Client Library에서 보거나 다운로드 할 수 있습니다.
및 Excel 시트 또는 데이터 세트의 경우
개 이상의 있습니다. 그런 다음 새 시트를 추가하는 방법은 무엇입니까?
또한 블롭 데이터를 메모리 스트림으로 읽을 수 있습니다. 그런 다음이 스트림을 기반으로 SpreadsheetDocument를 열 수 있습니다. 새 시트를 추가 한 후. 이 스트림을 BLOB 저장소에 다시 저장해야합니다. 다음은 샘플 코드입니다.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("storage connection string");
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.GetContainerReference("excelfilecontainer");
// Retrieve reference to a blob named "myblob.txt"
CloudBlockBlob blockBlob = container.GetBlockBlobReference("abc.xlsx");
using (var memoryStream = new MemoryStream())
{
blockBlob.DownloadToStream(memoryStream);
memoryStream.Position = 0;
using (SpreadsheetDocument doc = SpreadsheetDocument.Open(memoryStream, false))
{
}
}
감사 및 시트 또는 데이터 세트가 두 개 이상인 경우 감사합니다. 그런 다음 새 시트를 추가하는 방법은 무엇입니까? – Abhi
귀하의 의견에 따라 답장을 수정했습니다. SpreadsheetDocument를 사용하는 방법에 대한 도움이 더 필요하면 [openxml-sdk] 태그를 사용하여 새 질문을 게시하는 것이 좋습니다. 전문적인 도움을 받으실 수 있습니다. 문제가 해결되면 유용한 답장을 답으로 표시하는 것이 좋습니다. 표시된 스레드는 쉽게 검색됩니다. 유사한 문제를 겪고있는 다른 커뮤니티 회원들을 도울 것입니다. – Amor