在企業辦公或數據分析中,CSV 文件 是一種常見的數據存儲格式。然而,CSV 文件雖然輕量,但在排版和可視化方面存在不足,不便於直接用於打印和共享。相比之下,PDF 文件 更加美觀,且在存檔、分發和跨平台使用時具有優勢。
本文將介紹如何在 C# 程序中將 CSV 文件轉換為 PDF,並進一步演示一些常見的擴展操作,如表格樣式設置、頁面佈局調整和批量合併轉換。
環境準備
首先,需要在項目中引入 Free Spire.XLS for .NET,可下載導入使用 NuGet 包管理器安裝:
Install-Package FreeSpire.XLS
CSV 轉換為 PDF 的基本流程
Step 1: 加載 CSV 文件
通過 Workbook 類加載 CSV 文件:
using Spire.Xls;
Workbook workbook = new Workbook();
workbook.LoadFromFile("Sample.csv", ",", 1, 1);
Step 2: 設置基本轉換參數
設置自動對齊列寬以防止表格數據被隱藏,以及基本的頁面設置等:
for (int i = 1; i <= workbook.Worksheets[0].Columns.Count(); i++)
{
workbook.Worksheets[0].AutoFitColumn(i);
}
workbook.ConverterSetting.SheetFitToPage = true;
Step 3: 轉換為 PDF 文件
讀取到的工作簿對象可以直接保存為 PDF:
Worksheet sheet = workbook.Worksheets[0];
workbook.SaveToFile("Output/CSVtoPDF.pdf", FileFormat.PDF);
執行後,CSV 將被成功轉換為 PDF 文件。
完整的 C# 示例代碼
using Spire.Xls;
class Program
{
static void Main(string[] args)
{
// 加載 CSV 文件
Workbook workbook = new Workbook();
workbook.LoadFromFile("Sample.csv", ",", 1, 1);
// 設置基本轉換參數
// 列寬自動對齊(防止表格內容被隱藏)
for (int i = 1; i <= workbook.Worksheets[0].Columns.Count(); i++)
{
workbook.Worksheets[0].AutoFitColumn(i);
}
workbook.ConverterSetting.SheetFitToPage = true; // 表格適應頁面
// 轉換為 PDF 文件
workbook.SaveToFile("Output/CSVtoPDF.pdf", FileFormat.PDF);
Console.WriteLine("CSV 已成功轉換為 PDF。");
}
}
輸出示例:
擴展操作
1. 設置表格樣式和字體
為了讓 PDF 中的表格更美觀,可以在轉換前對錶格進行樣式調整:
Worksheet sheet = workbook.Worksheets[0];
// 設置表頭加粗並填充背景色
CellRange header = sheet.Range["A1:D1"];
header.Style.Font.IsBold = true;
header.Style.Color = System.Drawing.Color.LightGray;
// 為所有單元格添加邊框
sheet.AllocatedRange.Borders.LineStyle = LineStyleType.Thin;
// 自動調整列寬
sheet.AllocatedRange.AutoFitColumns();
// 重新導出 PDF
workbook.SaveToFile("Output/CSVtoPDF_Styled.pdf", FileFormat.PDF);
2. 調整頁面大小和頁邊距
適用於需要打印的 PDF 報表:
Worksheet sheet = workbook.Worksheets[0];
// 設置紙張為 A4 橫向
sheet.PageSetup.PaperSize = PaperSizeType.PaperA4;
sheet.PageSetup.Orientation = PageOrientationType.Landscape;
// 設置頁邊距(單位:英寸)
sheet.PageSetup.TopMargin = 0.5;
sheet.PageSetup.BottomMargin = 0.5;
sheet.PageSetup.LeftMargin = 0.5;
sheet.PageSetup.RightMargin = 0.5;
// 導出 PDF
workbook.SaveToFile("Output/CSVtoPDF_PageSetup.pdf", FileFormat.PDF);
3. 批量合併多個 CSV 到一個 PDF
如果需要將多個 CSV 文件合併為一個 PDF,可以如下操作:
Workbook mergedWorkbook = new Workbook();
// 加載第一個 CSV
mergedWorkbook.LoadFromFile("Data1.csv", ",", 1, 1);
// 加載並追加第二個 CSV
Workbook temp = new Workbook();
temp.LoadFromFile("Data2.csv", ",", 1, 1);
mergedWorkbook.Worksheets.AddCopy(temp.Worksheets[0]);
// 保存為一個 PDF 文件
mergedWorkbook.SaveToFile("Output/MergedCSVs.pdf", FileFormat.PDF);
總結
本文演示瞭如何在 C# 中使用 Free Spire.XLS for .NET 將 CSV 文件轉換為 PDF,主要流程包括:
- 加載 CSV 文件
- 轉換並導出為 PDF
此外,我們還介紹了幾種擴展操作:
- 調整表格樣式
- 設置頁面大小與邊距
- 合併多個 CSV 文件
這種方法可以讓日常業務中的 CSV 數據更加直觀和美觀,便於共享與歸檔。
更多示例與功能可參考:Spire.XLS for .NET 教程中心