3

C# と Interop で Excel ファイルを生成するコードは次のとおりです。

         Dictionary<Item, Shift_ItemSales> data = getData(curPage, depID);

         Application excelapp = new Application();
         excelapp.Visible = false;

         _Workbook workbook = (_Workbook)(excelapp.Workbooks.Add(Type.Missing));
         _Worksheet worksheet = (_Worksheet)workbook.ActiveSheet;

         worksheet.Cells[0, 1] = "ID";
         worksheet.Cells[0, 2] = "Description";

         int row = 1;
         foreach (Item curItem in data.Keys) {
             Shift_ItemSales curIS = data[curItem];
             worksheet.Cells[row, 0] = curItem.ID;
             worksheet.Cells[row, 1] = curItem.Description;
             row++;
         }

ブラウザに送信して、ユーザーにダウンロードさせるにはどうすればよいですか?

4

1 に答える 1

3

FileResultこの目的のために使用する必要があります。

    [HttpPost]
    public FileResult ExcelDownload(ReportDownloadRequest reportRequest)
    {
           //Code to generate Excel file with GemBox.Spreadsheet

           return new FileStreamResult(report, "application/ms-excel")
           {
               FileDownloadName = "SalesReport.xls"
           };
    }

Excel シートの場合、GemBox.SpreadsheetFree バージョンは Professional バージョンと同じパフォーマンスと機能セットを提供します。ただし、次の制限があります。

  • シートあたりの最大行数は 150 です。
  • ワークブックあたりの最大シート数は 5 です。

GemSheet サンプル コード:

 // Set license key to use GemBox.Spreadsheet in a Free mode.
SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");

// Create new empty Excel file.
var workbook = new ExcelFile();

// Create new worksheet and set cell A1 value to 'Hello world!'.
workbook.Worksheets.Add("Test").Cells["A1"].Value = "Hello world!";

// Save to XLSX file.
workbook.Save("Test.xlsx");
于 2013-06-11T18:04:39.113 に答える