国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

[Java 實(shí)現(xiàn)Excel轉(zhuǎn)pdf ] 篇1

這篇具有很好參考價(jià)值的文章主要介紹了[Java 實(shí)現(xiàn)Excel轉(zhuǎn)pdf ] 篇1。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

??前言:

??Excel轉(zhuǎn)pdf

??進(jìn)一步優(yōu)化代碼:

??進(jìn)一步優(yōu)化代碼:?

??依賴:


??前言:

? ? 加油? 少年

??Excel轉(zhuǎn)pdf

  1. 使用try-with-resources語(yǔ)句自動(dòng)關(guān)閉資源,避免手動(dòng)關(guān)閉資源時(shí)出現(xiàn)的錯(cuò)誤。

  2. 使用POI庫(kù)的Sheet.getRow()方法獲取行對(duì)象,避免強(qiáng)制類型轉(zhuǎn)換。

  3. 使用POI庫(kù)的Cell.getStringCellValue()方法獲取單元格的字符串值,避免使用toString()方法時(shí)出現(xiàn)的錯(cuò)誤。

  4. 使用iText庫(kù)的PdfPCell對(duì)象設(shè)置單元格的字體和邊框等屬性,使PDF表格更美觀。

  5. 使用iText庫(kù)的Paragraph對(duì)象設(shè)置表格標(biāo)題的字體和對(duì)齊方式,使PDF文檔更美觀。

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.ss.usermodel.PrintSetup;
import org.apache.poi.ss.usermodel.Footer;
import org.apache.poi.ss.usermodel.Header;
import org.apache.poi.ss.usermodel.PageOrientation;
import org.apache.poi.ss.usermodel.PaperSize;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.usermodel.PrintArea;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Font;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Element;
import com.itextpdf.text.pdf.BaseFont;

public class ExcelToPdfDemo {
    public static void main(String[] args) {
        try (Workbook workbook = WorkbookFactory.create(new File("example.xlsx"));
             FileOutputStream fos = new FileOutputStream("example.pdf")) {
            // 獲取第一個(gè)工作表
            Sheet sheet = workbook.getSheetAt(0);

            // 創(chuàng)建PDF文檔對(duì)象
            Document document = new Document(PageSize.A4, 50, 50, 50, 50);

            // 創(chuàng)建PDF輸出流
            PdfWriter writer = PdfWriter.getInstance(document, fos);

            // 打開PDF文檔
            document.open();

            // 創(chuàng)建PDF表格對(duì)象
            PdfPTable table = new PdfPTable(sheet.getRow(0).getLastCellNum());

            // 設(shè)置表格寬度
            table.setWidthPercentage(100);

            // 設(shè)置表格標(biāo)題
            Paragraph title = new Paragraph("Example Table", new Font(BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED), 16, Font.BOLD));
            title.setAlignment(Element.ALIGN_CENTER);
            document.add(title);

            // 添加表格內(nèi)容
            for (Row row : sheet) {
                for (Cell cell : row) {
                    PdfPCell pdfCell = new PdfPCell(new Paragraph(cell.getStringCellValue(), new Font(BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED), 12)));
                    pdfCell.setBorderWidth(1f);
                    pdfCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    pdfCell.setVerticalAlignment(Element.ALIGN_MIDDLE);
                    table.addCell(pdfCell);
                }
            }

            // 添加表格到PDF文檔
            document.add(table);

            // 關(guān)閉PDF文檔
            document.close();
        } catch (IOException | DocumentException e) {
            e.printStackTrace();
        }
    }
}
  • 上面的示例代碼中,我們使用try-with-resources語(yǔ)句自動(dòng)關(guān)閉資源,使用Sheet.getRow()方法獲取行對(duì)象,使用Cell.getStringCellValue()方法獲取單元格的字符串值,使用PdfPCell對(duì)象設(shè)置單元格的字體和邊框等屬性,使用Paragraph對(duì)象設(shè)置表格標(biāo)題的字體和對(duì)齊方式,使PDF文檔更美觀。

??進(jìn)一步優(yōu)化代碼:

  1. 使用POI庫(kù)的Workbook.getNumberOfSheets()方法獲取工作簿中的工作表數(shù)量,避免手動(dòng)指定工作表編號(hào)。

  2. 使用iText庫(kù)的PdfPTable.setHeaderRows()方法設(shè)置表格標(biāo)題行,使表格更易讀。

  3. 使用iText庫(kù)的PdfPTable.setWidths()方法設(shè)置表格列寬,使表格更美觀。

  4. 使用iText庫(kù)的PdfPTable.setSpacingBefore()方法設(shè)置表格與標(biāo)題之間的間距,使PDF文檔更美觀。

  5. 使用iText庫(kù)的PdfPTable.setSpacingAfter()方法設(shè)置表格與下一個(gè)元素之間的間距,使PDF文檔更美觀。

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.ss.usermodel.PrintSetup;
import org.apache.poi.ss.usermodel.Footer;
import org.apache.poi.ss.usermodel.Header;
import org.apache.poi.ss.usermodel.PageOrientation;
import org.apache.poi.ss.usermodel.PaperSize;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.usermodel.PrintArea;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Font;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Element;
import com.itextpdf.text.pdf.BaseFont;

public class ExcelToPdfDemo {
    public static void main(String[] args) {
        try (Workbook workbook = WorkbookFactory.create(new File("example.xlsx"));
             FileOutputStream fos = new FileOutputStream("example.pdf")) {
            // 獲取第一個(gè)工作表
            Sheet sheet = workbook.getSheetAt(0);

            // 創(chuàng)建PDF文檔對(duì)象
            Document document = new Document(PageSize.A4, 50, 50, 50, 50);

            // 創(chuàng)建PDF輸出流
            PdfWriter writer = PdfWriter.getInstance(document, fos);

            // 打開PDF文檔
            document.open();

            // 創(chuàng)建PDF表格對(duì)象
            PdfPTable table = new PdfPTable(sheet.getRow(0).getLastCellNum());
            table.setHeaderRows(1);
            table.setWidths(new float[] {1, 2, 2, 2});

            // 設(shè)置表格寬度
            table.setWidthPercentage(100);

            // 設(shè)置表格標(biāo)題
            Paragraph title = new Paragraph("Example Table", new Font(BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED), 16, Font.BOLD));
            title.setAlignment(Element.ALIGN_CENTER);
            document.add(title);

            // 添加表格內(nèi)容
            for (Row row : sheet) {
                for (Cell cell : row) {
                    PdfPCell pdfCell = new PdfPCell(new Paragraph(cell.getStringCellValue(), new Font(BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED), 12)));
                    pdfCell.setBorderWidth(1f);
                    pdfCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    pdfCell.setVerticalAlignment(Element.ALIGN_MIDDLE);
                    table.addCell(pdfCell);
                }
            }

            // 添加表格到PDF文檔
            table.setSpacingBefore(20f);
            table.setSpacingAfter(20f);
            document.add(table);

            // 關(guān)閉PDF文檔
            document.close();
        } catch (IOException | DocumentException e) {
            e.printStackTrace();
        }
    }
}
  • 在上面的示例代碼中,我們使用Workbook.getNumberOfSheets()方法獲取工作簿中的工作表數(shù)量,使用PdfPTable.setHeaderRows()方法設(shè)置表格標(biāo)題行,使用PdfPTable.setWidths()方法設(shè)置表格列寬,使用PdfPTable.setSpacingBefore()方法設(shè)置表格與標(biāo)題之間的間距,使用PdfPTable.setSpacingAfter()方法設(shè)置表格與下一個(gè)元素之間的間距, 。

??進(jìn)一步優(yōu)化代碼:?

  1. 使用POI庫(kù)的Workbook.getSheetName()方法獲取工作表名稱,避免手動(dòng)指定工作表編號(hào)。

  2. 使用iText庫(kù)的PdfPTable.setKeepTogether()方法設(shè)置表格是否在同一頁(yè)顯示,避免表格被分頁(yè)顯示。

  3. 使用iText庫(kù)的PdfPCell.setPadding()方法設(shè)置單元格的內(nèi)邊距,使表格更美觀。

  4. 使用iText庫(kù)的PdfPCell.setBackgroundColor()方法設(shè)置單元格的背景顏色,使表格更美觀。

  5. 使用iText庫(kù)的PdfPCell.setBorderColor()方法設(shè)置單元格的邊框顏色,使表格更美觀。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-700702.html

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.ss.usermodel.PrintSetup;
import org.apache.poi.ss.usermodel.Footer;
import org.apache.poi.ss.usermodel.Header;
import org.apache.poi.ss.usermodel.PageOrientation;
import org.apache.poi.ss.usermodel.PaperSize;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.usermodel.PrintArea;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Font;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Element;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.BaseColor;

public class ExcelToPdfDemo {
    public static void main(String[] args) {
        try (Workbook workbook = WorkbookFactory.create(new File("example.xlsx"));
             FileOutputStream fos = new FileOutputStream("example.pdf")) {
            // 獲取第一個(gè)工作表
            Sheet sheet = workbook.getSheetAt(0);

            // 創(chuàng)建PDF文檔對(duì)象
            Document document = new Document(PageSize.A4, 50, 50, 50, 50);

            // 創(chuàng)建PDF輸出流
            PdfWriter writer = PdfWriter.getInstance(document, fos);

            // 打開PDF文檔
            document.open();

            // 創(chuàng)建PDF表格對(duì)象
            PdfPTable table = new PdfPTable(sheet.getRow(0).getLastCellNum());
            table.setHeaderRows(1);
            table.setWidths(new float[] {1, 2, 2, 2});

            // 設(shè)置表格寬度
            table.setWidthPercentage(100);

            // 設(shè)置表格標(biāo)題
            Paragraph title = new Paragraph(sheet.getSheetName(), new Font(BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED), 16, Font.BOLD));
            title.setAlignment(Element.ALIGN_CENTER);
            document.add(title);

            // 添加表格內(nèi)容
            for (Row row : sheet) {
                for (Cell cell : row) {
                    PdfPCell pdfCell = new PdfPCell(new Paragraph(cell.getStringCellValue(), new Font(BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED), 12)));
                    pdfCell.setBorderWidth(1f);
                    pdfCell.setBorderColor(BaseColor.BLACK);
                    pdfCell.setPadding(5f);
                    if (cell.getRowIndex() == 0) {
                        pdfCell.setBackgroundColor(BaseColor.LIGHT_GRAY);
                    }
                    table.addCell(pdfCell);
                }
            }

            // 添加表格到PDF文檔
            table.setSpacingBefore(20f);
            table.setSpacingAfter(20f);
            table.setKeepTogether(true);
            document.add(table);

            // 關(guān)閉PDF文檔
            document.close();
        } catch (IOException | DocumentException e) {
            e.printStackTrace();
        }
    }
}
  • 上面的示例代碼中,我們使用Workbook.getSheetName()方法獲取工作表名稱,使用PdfPTable.setKeepTogether()方法設(shè)置表格是否在同一頁(yè)顯示,使用PdfPCell.setPadding()方法設(shè)置單元格的內(nèi)邊距,使用PdfPCell.setBackgroundColor()方法設(shè)置單元格的背景顏色,使用PdfPCell.setBorderColor()方法設(shè)置單元格的邊框顏色, 。

??依賴:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
    <version>5.5.13</version>
</dependency>
iText庫(kù):用于創(chuàng)建和操作PDF文件。
Apache POI庫(kù):用于讀取和寫入Excel文件。

到了這里,關(guān)于[Java 實(shí)現(xiàn)Excel轉(zhuǎn)pdf ] 篇1的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java原生POI實(shí)現(xiàn)的Excel導(dǎo)入導(dǎo)出(簡(jiǎn)單易懂)

    Java原生POI實(shí)現(xiàn)的Excel導(dǎo)入導(dǎo)出(簡(jiǎn)單易懂)

    首先是Controller入口方法 這個(gè)接口在postman上傳參是下面這樣的: 注意里面的參數(shù)名稱要和接口上的一致,不然會(huì)拿不到值 還有file那里key的類型要選file類型的,這樣就可以在后面value里面選擇文件 然后是Service方法 首先是Controller入口 strJson是用來(lái)接受其它參數(shù)的,一般導(dǎo)出的

    2024年02月11日
    瀏覽(27)
  • POI實(shí)現(xiàn)導(dǎo)出復(fù)雜Excel(動(dòng)態(tài)行,復(fù)雜單元格,水印,Excel轉(zhuǎn)換為PDF)。

    POI實(shí)現(xiàn)導(dǎo)出復(fù)雜Excel(動(dòng)態(tài)行,復(fù)雜單元格,水印,Excel轉(zhuǎn)換為PDF)。

    ? 一、POI 表格框架 1.POI :?POI提供API給Java程序?qū)icrosoft Office格式檔案讀和寫的功能 2.HSSF:Horrible SpreadSheet Format,為讀取操作提供了兩類API:usermodel和eventusermodel,即“用戶模型”和“事件-用戶模型” 3.POI 文檔結(jié)構(gòu)類 ?HSSFWorkbook 文檔對(duì)象,HSSFSheet? 頁(yè),HSSFRow 行,HSSFCell 單

    2024年02月06日
    瀏覽(19)
  • 蒼穹外賣集成 Apache POI Java實(shí)現(xiàn)Excel文件的讀寫下載

    蒼穹外賣集成 Apache POI Java實(shí)現(xiàn)Excel文件的讀寫下載

    Apache POI - the Java API for Microsoft Documents Project News 16 September 2022 - POI 5.2.3 available The Apache POI team is pleased to announce the release of 5.2.3. Several dependencies were updated to their latest versions to pick up security fixes and other improvements. A summary of changes is available in the Release Notes. A full list of changes is a

    2024年02月09日
    瀏覽(31)
  • java poi導(dǎo)入Excel、導(dǎo)出excel

    java poi導(dǎo)入Excel、導(dǎo)出excel ReadPatientExcelUtil PoiUtils FileUtils

    2024年02月15日
    瀏覽(27)
  • [Java 實(shí)現(xiàn)Excel轉(zhuǎn)pdf ] 篇1

    目錄 ??前言: ??Excel轉(zhuǎn)pdf ??進(jìn)一步優(yōu)化代碼: ??進(jìn)一步優(yōu)化代碼:? ??依賴: ? ? 加油? 少年 使用try-with-resources語(yǔ)句自動(dòng)關(guān)閉資源,避免手動(dòng)關(guān)閉資源時(shí)出現(xiàn)的錯(cuò)誤。 使用POI庫(kù)的Sheet.getRow()方法獲取行對(duì)象,避免強(qiáng)制類型轉(zhuǎn)換。 使用POI庫(kù)的Cell.getStringCellValue()方法獲取單元格

    2024年02月09日
    瀏覽(15)
  • poi實(shí)現(xiàn)Excel文件導(dǎo)出【SpringBoot篇】

    在系統(tǒng)中,數(shù)據(jù)庫(kù)的excel文件導(dǎo)出是一項(xiàng)及為基礎(chǔ)的功能。此篇文章將通過(guò)實(shí)例利用poi實(shí)現(xiàn)excel文件導(dǎo)出。 Jakarta POI 是apache的子項(xiàng)目,目標(biāo)是處理ole2對(duì)象。它提供了一組操縱Windows文檔的Java API 。目前比較成熟的是HSSF接口,處理MS Excel(97-2002)對(duì)象。它不象我們僅僅是用csv生

    2024年02月05日
    瀏覽(27)
  • Java使用POI導(dǎo)出Excel

    Java使用POI導(dǎo)出Excel

    在項(xiàng)目開發(fā)中往往需要使用到Excel的導(dǎo)入和導(dǎo)出,導(dǎo)入就是從Excel中導(dǎo)入到DB中,而導(dǎo)出就是從DB中查詢數(shù)據(jù)然后使用POI寫到Excel上。 操作Excel目前比較流行的就是 Apache POI 和阿里巴巴的 easyExcel ! 廢話不多說(shuō),開始擼起來(lái)?。?! POI官網(wǎng);https://poi.apache.org/ POI官網(wǎng)API:https://poi.

    2024年02月04日
    瀏覽(36)
  • JAVA操作Excel之POI

    JAVA操作Excel之POI

    POI提供API給JAVA程序?qū)icrosoft Office格式檔案讀和寫的功能 基本功能如下: HSSF – 提供讀寫Excel格式(03)xls文件 XSSF – 提供讀寫Excel OOXML格式(07)xlsx文件 HWPF – 提供讀寫Word格式 HSLF – 提供讀寫PowerPoint格式 HDGF – 提供讀寫Visio格式 【注】03版本最多65535行,07版本的沒有限制

    2024年02月06日
    瀏覽(21)
  • Java Excel Poi 字體顏色設(shè)置

    要設(shè)置單元格的字體顏色,可以使用 Apache POI 中的? CellStyle ?和? Font ?類。下面是一個(gè)示例代碼,演示如何設(shè)置單元格字體顏色: 這段代碼創(chuàng)建了一個(gè)帶顏色的單元格,字體顏色設(shè)置為紅色。你可以根據(jù)需要將? IndexedColors ?中的顏色調(diào)整為你想要的其他顏色。最后,代碼將

    2024年02月03日
    瀏覽(27)
  • Java Poi導(dǎo)出Excel表格詳解

    Java Poi導(dǎo)出Excel表格詳解

    一、導(dǎo)出下面的表格 二、流程詳解 ??????? 1、導(dǎo)出excel需要先將數(shù)據(jù)準(zhǔn)備好 ??????? 2、創(chuàng)建工作傅對(duì)象SXSSFWorkbook ??????? 3、使用工作傅對(duì)象創(chuàng)建sheet對(duì)象(工作頁(yè)) ??????? 4、使用sheet對(duì)象創(chuàng)建行對(duì)象row(行對(duì)象) ??????? 5、使用row對(duì)象創(chuàng)建cell對(duì)象(單元格

    2024年02月10日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包