java實現(xiàn)Excel轉(zhuǎn)換為圖片
前言
在實際開發(fā)過程中,經(jīng)常會有這樣的需求:將Excel表格或特定區(qū)域轉(zhuǎn)換為圖片,以便在其他軟件中使用。而在Java開發(fā)中,借助于報表插件可以輕松地將工作表、任意指定區(qū)域以及各種形狀類型轉(zhuǎn)換為圖片。今天小編為大家介紹如何使用Java將Excel轉(zhuǎn)化為圖片。
在Java中將Excel轉(zhuǎn)化為圖片
在Java中可以使用ImageSaveOptions類中的方法將工作表、區(qū)域或形狀導(dǎo)出為圖片文件。
以下是 ImageSaveOptions類的詳細方法:
| 方法 | 工作表 | 區(qū)域 | 形狀 | 描述 |
|---|---|---|---|---|
| ScaleX and ScaleY | Yes | Yes | Yes | 獲取或設(shè)置導(dǎo)出圖片文件的縮放比例 |
| Resolution | Yes | Yes | Yes | 獲取或設(shè)置導(dǎo)出圖片文件中 JPEG 文件的 DPI |
| BackgroundColor | Yes | Yes | Yes | 獲取或設(shè)置導(dǎo)出圖片文件的背景顏色 |
| ShowRowHeadings | Yes | Yes | No | 獲取或設(shè)置是否在導(dǎo)出的圖片文件中顯示行標(biāo)題 |
| ShowColumnHeadings | Yes | Yes | No | 獲取或設(shè)置是否在導(dǎo)出的圖片文件中顯示列標(biāo)題 |
| ShowGridlines | Yes | Yes | No | 獲取或設(shè)置是否在導(dǎo)出的圖片文件中顯示網(wǎng)格線 |
| GridlineColor | Yes | Yes | No | 獲取或設(shè)置導(dǎo)出圖片文件中網(wǎng)格線的顏色 |
| ShowDrawingObjects | Yes | Yes | No | 獲取或設(shè)置是否在導(dǎo)出的圖片文件中顯示繪圖對象(圖表、形狀或圖片) |
| BlackAndWhite | Yes | Yes | Yes | 獲取或設(shè)置是否導(dǎo)出黑白圖片 |
下面小編將為大家介紹如何分別將工作表、區(qū)域和形狀轉(zhuǎn)化為圖片:
1.將工作表轉(zhuǎn)換為圖片
在Java中可以使用IWorksheet接口的toImage方法將工作表轉(zhuǎn)換為圖片:
// 創(chuàng)建workbook
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.getWorksheets().get(0);
// 添加數(shù)據(jù)
worksheet.getRange("A1").setValue("Sales Report");
worksheet.getRange("A1").getFont().setColor(Color.FromArgb(56, 93, 171));
worksheet.getRange("A1").getFont().setSize(24);
worksheet.getRange("A1").getFont().setBold(true);
worksheet.getRange("A3:E7")
.setValue(new Object[][] { { "Date", "Product", "Customer", "Amount", "Show" },
{ "1/1/2021", "Bose 785593-0050", "Fabrikam, Inc.", "$1,886.00", "1" },
{ "1/3/2021", "Canon EOS 1500D", "Alpine Ski House", "$4,022.00", "" },
{ "1/4/2021", "Haier 394L 4Star", "Coho Winery", "$8,144.00", "" },
{ "1/7/2021", "IFB 6.5 Kg FullyAuto", "Southridge Video", "$8,002.00", "1" } });
// 初始化 ImageSaveOptions 并且配置屬性
ImageSaveOptions options = new ImageSaveOptions();
options.setScaleX(3.0);
options.setScaleY(2.0);
options.setShowRowHeadings(true);
options.setShowColumnHeadings(false);
options.setShowDrawingObjects(true);
options.setBackgroundColor(Color.FromArgb(226, 231, 243));
options.setShowGridlines(true);
options.setGridlineColor(Color.FromArgb(145, 167, 214));
// 直接把工作表保存為圖片
worksheet.toImage("WorksheetToImage.png");
// 通過ImageSaveOptions把工作表保存為圖片
worksheet.toImage("WorksheetToImage_UsingImageSaveOptions.png", options);實現(xiàn)效果如下圖所示:


2.將區(qū)域轉(zhuǎn)換為圖片
在Java中可以使用 IRange 接口的 toImage 方法將工作表中的特定區(qū)域轉(zhuǎn)換為圖片:
// 創(chuàng)建workbook
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.getWorksheets().get(0);
// 添加數(shù)據(jù)
worksheet.getRange("D10:F10").setValue(new String[] { "Device", "Quantity", "Unit Price" });
worksheet.getRange("D11:F14").setValue(new Object[][] { { "T540p", 12, 9850 }, { "T570", 5, 7460 },
{ "Y460", 6, 5400 }, { "Y460F", 8, 6240 } });
IRange range = worksheet.getRange("D10:F14");
// 初始化 ImageSaveOptions 并且配置屬性
ImageSaveOptions options = new ImageSaveOptions();
options.setScaleX(3.0);
options.setScaleY(2.0);
options.setShowRowHeadings(true);
options.setShowColumnHeadings(false);
options.setShowDrawingObjects(true);
options.setBackgroundColor(Color.FromArgb(226, 231, 243));
options.setShowGridlines(true);
options.setGridlineColor(Color.FromArgb(145, 167, 214));
// 直接把區(qū)域保存為圖片
range.toImage("RangeToImage.png");
// 通過 ImageSaveOptions 保存區(qū)域為圖片
range.toImage("RangeToImage_UsingImageSaveOptions.png", options);實現(xiàn)效果如下圖所示:


3.將形狀轉(zhuǎn)換為圖片
在Java中可以使用ImageSaveOptions方法將形狀轉(zhuǎn)化為圖片。
3.1將 shape 轉(zhuǎn)換為圖片
// 創(chuàng)建workbook
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.getWorksheets().get(0);
// 添加一個橢圓形狀
IShape shape = worksheet.getShapes().addShape(AutoShapeType.Oval, 20, 20, 200, 100);
// 初始化 ImageSaveOptions 并且配置屬性
ImageSaveOptions options = new ImageSaveOptions();
options.setScaleX(3.0);
options.setScaleY(2.0);
options.setBackgroundColor(Color.GetLimeGreen());
// 直接保存為形狀
shape.toImage("ShapeToImage.png");
// 通過 ImageSaveOptions 來保存圖片
shape.toImage("ShapeToImage_UsingImageSaveOptions.png", options);實現(xiàn)效果如下圖所示:


3.2將 chart 轉(zhuǎn)換為圖片
// 創(chuàng)建workbook
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.getWorksheets().get(0);
// 準(zhǔn)備圖表的數(shù)據(jù)
worksheet.getRange("A1:D4")
.setValue(new Object[][] { { null, "Q1", "Q2", "Q3" }, { "Mobile Phones", 1330, 2345, 3493 },
{ "Laptops", 2032, 3632, 2197 }, { "Tablets", 6233, 3270, 2030 } });
worksheet.getRange("A:D").getColumns().autoFit();
// 增加面積圖
IShape shape = worksheet.getShapes().addChart(ChartType.Area, 250, 20, 360, 230);
// 給SeriesCollection添加系列
shape.getChart().getSeriesCollection().add(worksheet.getRange("A1:D4"), RowCol.Columns, true, true);
// 設(shè)置圖表標(biāo)題
shape.getChart().getChartTitle().getTextFrame().getTextRange().getParagraphs().add("Annual Sales Record");
// 保存為圖片
shape.toImage("ConvertChartToImage.png");實現(xiàn)效果如下圖所示:

到此這篇關(guān)于java實現(xiàn)Excel轉(zhuǎn)換為圖片的文章就介紹到這了,更多相關(guān)java Excel轉(zhuǎn)圖片內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 使用Java實現(xiàn)將Excel工作表轉(zhuǎn)換為CSV格式
- 使用Java將Excel轉(zhuǎn)換為Text的實現(xiàn)方法
- Java將Word、Excel、PDF和PPT轉(zhuǎn)換為OFD格式的詳細步驟
- 基于Java實將現(xiàn)Excel轉(zhuǎn)換為HTML
- Java實現(xiàn)集合和Excel文件相互轉(zhuǎn)換
- Java高效實現(xiàn)excel轉(zhuǎn)pdf(支持帶圖片的轉(zhuǎn)換)
- Java實現(xiàn)快速將HTML表格轉(zhuǎn)換成Excel
- Java中實現(xiàn)Excel數(shù)字與文本轉(zhuǎn)換的示例代碼
相關(guān)文章
Spring security BCryptPasswordEncoder密碼驗證原理詳解
這篇文章主要介紹了Spring security BCryptPasswordEncoder密碼驗證原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03
SpringBoot使用Flyway進行數(shù)據(jù)庫管理的操作方法
Flyway是一個開源的數(shù)據(jù)庫版本管理工具,并且極力主張“約定大于配置”,簡單、專注、強大。接下來通過本文給大家介紹SpringBoot使用Flyway進行數(shù)據(jù)庫管理的方法,感興趣的朋友一起看看吧2021-09-09
springsecurity?登錄認證流程分析一(ajax)
這篇文章主要介紹了springsecurity?登錄認證一(ajax篇),本文通過實例代碼圖文相結(jié)合給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2024-08-08
簡單幾步實現(xiàn)將Spring security4.x升級到5.x
這篇文章主要介紹了簡單幾步實現(xiàn)將Spring security4.x升級到5.x方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
java多態(tài)性中的Overload和Override區(qū)別詳解
這篇文章主要介紹了java多態(tài)性中的Overload和Override區(qū)別詳解,重寫(Overriding)是父類與子類之間多態(tài)性的一種表現(xiàn),而重載(Overloading)是一個類中多態(tài)性的一種表現(xiàn),需要的朋友可以參考下2023-07-07

