2016-04-13 22 views
1

.pdfというレポートを生成するために、PdfReportライブラリを使用しています。 PdfReportはEpplusとiTextsharpで構築されたライブラリです。そのため、PDFとEXCELファイルを生成したいので、このライブラリを選択しました。PdfReportを使用して.xlsxファイルを生成する方法

現在のところ、Excelファイルを生成できないようなPDFファイルを生成することができます。

Googleではこのライブラリに関する多くのヘルプはありません。ここで

PdfReport

私のコードは、作成したい場合、私はしかし 、その特定のライブラリを使ったことがないので、それを使用する方法の任意の提案をすることはできません

public class IListPdfReport 
{ 
    public IPdfReportData CreatePdfReport(DataSet mTables) 
    { 
     return new PdfReport().DocumentPreferences(doc => 
     { 
      doc.RunDirection(PdfRunDirection.LeftToRight); 
      doc.Orientation(PageOrientation.Portrait); 
      doc.PageSize(PdfPageSize.A4); 
      doc.DocumentMetadata(new DocumentMetadata { Author = "Vahid", Application = "PdfRpt", Keywords = "IList Rpt.", Subject = "Test Rpt", Title = "Test" }); 
      doc.Compression(new CompressionSettings 
      { 
       EnableCompression = true, 
       EnableFullCompression = true 
      }); 
      doc.PrintingPreferences(new PrintingPreferences 
      { 
       ShowPrintDialogAutomatically = true 
      }); 
     }) 
     .DefaultFonts(fonts => 
     { 
      fonts.Path(System.IO.Path.Combine(Environment.GetEnvironmentVariable("SystemRoot"), "fonts\\arial.ttf"), 
         System.IO.Path.Combine(Environment.GetEnvironmentVariable("SystemRoot"), "fonts\\verdana.ttf")); 
      fonts.Size(9); 
      fonts.Color(System.Drawing.Color.Black); 
     }) 
     .PagesFooter(footer => 
     { 
      footer.DefaultFooter(DateTime.Now.ToString("MM/dd/yyyy")); 
     }) 
     .MainTableTemplate(template => 
     { 
      template.BasicTemplate(BasicTemplate.AppleOrchardTemplate); 
     }) 
     .MainTablePreferences(table => 
     { 
      table.ColumnsWidthsType(TableColumnWidthType.FitToContent); 
      table.NumberOfDataRowsPerPage(10); 
     }) 
     .MainTableDataSource(dataSource => 
     { 
      dataSource.DataTable(mTables.Tables[2]); 
     }) 
     .MainTableSummarySettings(summarySettings => 
     { 
      summarySettings.OverallSummarySettings("Summary"); 
      summarySettings.PreviousPageSummarySettings("Previous Page Summary"); 
      summarySettings.PageSummarySettings("Page Summary"); 
     }) 
     .MainTableColumns(columns => 
     { 
      columns.AddColumn(column => 
      { 
       column.PropertyName("AssetSummaryReportDetailId"); 
       column.IsRowNumber(true); 
       column.CellsHorizontalAlignment(HorizontalAlignment.Center); 
       column.IsVisible(true); 
       column.Order(0); 
       column.Width(1); 
       column.HeaderCell("AssetSummaryReportDetailId"); 
      }); 

      columns.AddColumn(column => 
      { 
       column.PropertyName("AssetId"); 
       column.IsRowNumber(true); 
       column.CellsHorizontalAlignment(HorizontalAlignment.Center); 
       column.IsVisible(true); 
       column.Order(1); 
       column.Width(2); 
       column.HeaderCell("AssetId"); 
      }); 

      columns.AddColumn(column => 
      { 
       column.PropertyName("CategoryId"); 
       column.IsRowNumber(true); 
       column.CellsHorizontalAlignment(HorizontalAlignment.Center); 
       column.IsVisible(true); 
       column.Order(1); 
       column.Width(2); 
       column.HeaderCell("CategoryId"); 
      }); 




     }) 
     .MainTableEvents(events => 
     { 
      events.DataSourceIsEmpty(message: "There is no data available to display."); 
     }) 
     .Export(export => 
     { 

// This line here should generate the Excel file, but it is not creating the Excel file 
      export.ToExcel(description: "Demo", fileName: "usmandemo.xlsx", worksheetName: "worksheet1", footer: "footer"); 
     }) 
     .Generate(data => data.AsPdfFile(string.Format("{0}\\A_RptIListSample-{1}.pdf", AppPath.ApplicationPath, Guid.NewGuid().ToString("N")))); 

    } 
+0

最も簡単な方法は、CSVファイルを生成することです。 – Kalten

+0

@Mafii問題が他のライブラリでExcelを生成していない - 私たちは、上記のようにPDFレポートライブラリを使用しています - export.ToExcel(description: "Demo"、fileName: "usmandemo.xlsx"、worksheetName: "worksheet1 "、フッター:"フッター "); - それはExcelファイルを生成していません –

+0

@Kalten PDFReportライブラリでそれを行う方法は? –

答えて

0

ですxlsxファイルには、サービスを利用せずに行うことができるデータが含まれています

新しいOfficeファイル形式はOffice Open XML形式と呼ばれ、すべてのOfficeアプリケーションに共通していますあなた

Creating Documents by Using the Open XML Format

+0

質問に記載したように、私たちはPDFReportを使用しています - これはEPPLusとiTextSharpをベースにしています。 –

+0

あなたがそのガイドを見れば、サードパーティのライブラリをパスしなくてもExcelファイルを構築でき、複雑さのレベルを減らし、PDFライブラリとxlsxから直接PDFを生成できます。図書館では、私は彼らと直接サポート要求を提起することを提案する – MikeT

関連する問題