5

作業中の Windows アプリケーションで PDF レポートを生成する必要があります。これは、.xlsx ファイルを pdf にエクスポートすることによって行います。ただし、現在、これには相互運用機能を使用しています。

  • ユーザーにソフトウェアの購入を要求せずにこれを行う必要があるため、Microsoft Office Excel はありません。
  • また、重い依存関係 (open/libre office など) も使用できません。
  • アプリケーションは .NET winforms であり、ローカルです (インターネット接続に依存しません)。

私が試したこと:

  • 私は iTextSharp を試しましたが、これは列のオーバーフローなどで非常に複雑になります。
  • closedXML を試しましたが、PDF に変換できませんでした。
  • (前述のとおり)相互運用を試みましたが、オフィスで独立させる方法が見つかりませんでした。

助けていただければ幸いです、事前に感謝します:)

編集:

iTextSharp

可変数の列 (最大 30 列) を持つ大きな DataTable をエクスポートする必要がある場合を除いて、私はそれを使用します。多数の列がある場合、その列のオーバーフローを処理するのは非常に複雑になりますが、相互運用は簡単でした。

アスポーズ

私は現在、リソースが非常に限られている小規模な会社で働いているため、費用が高すぎるようです。

4

4 に答える 4

8

もう 1 つの適切なオプションは、Spire.XLS を使用することです。上部に評価の警告が表示されますが、FreeSpire.XLS を使用して取り除くことができます。以下はそのリンクです https://www.nuget.org/packages/FreeSpire.XLS/

以下は、から取得したコードスニペットです

https://forums.asp.net/t/2087645.aspx?Saving+xlsx+to+pdf

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Spire.Xls; 

namespace ConvertExcelToPdf 
{ 
    class Program 
    { 
        static void Main(string[] args) 
        { 

            Workbook workbook = new Workbook(); 
            workbook.LoadFromFile(@"..\..\sample2.xlsx"); 
            workbook.ConverterSetting.SheetFitToPage = true; 
            workbook.SaveToFile(@"..\..\sample.pdf", FileFormat.PDF); 
            System.Diagnostics.Process.Start(@"..\..\sample.pdf"); 
        } 
    } 
} 
于 2016-10-19T12:38:56.750 に答える
2

レポートのレイアウトに Excel を使用する代わりに、HTML を使用します。これははるかに柔軟で、エンド ユーザー向けにデータをレイアウトするための最も簡単なツールです。次に、多くの HTML から PDF へのソリューション (wkhtmltopdf、print to pdf ドライバーのインストールなど) のいずれかを探します。

于 2013-03-11T03:30:28.810 に答える
1

OpenOffice と C# を使用して Excel から PDF を生成するための代替ソリューション:

C# を使用して PDF を生成する

于 2013-03-10T16:42:43.677 に答える