[]
GcExcel Java 允许用户在电子表格的单元格上插入图形对象,例如形状和图片。
您可以根据特定要求绘制并插入所选的箭头,线条,图片和常规形状。
GcExcel 允许用户在工作表的单元格上插入和自定义形状和图片。您可以通过访问属性和方法与形状和图像工作 IShapes 接口的和 IShape 接口。
使用 GcExcel 库,您可以创建不同的形状类型,例如连接器,形状和图片。
需要连接或断开两个常规形状时,可以使用连接器。在 GcExcel 中,可以使用 addConnector 方法在工作表的特定坐标或特定范围添加连接器。还可以使用 IConnectorFormat 接口的 BeginConnect 方法,EndConnect 方法,BeginDisconnect 方法和的 EndDisconnect 方法到连接器的端部连接和分离到其他形状。
请参考以下示例代码,以使用连接器格式连接常规形状。可以按像素位置来添加连接器,也可以将连接器直接添加到指定范围中。
// To configure the connector shape
IShape ShapeBegin = worksheet.getShapes().addShape(AutoShapeType.Rectangle, 1, 1, 100, 100);
IShape EndBegin = worksheet.getShapes().addShape(AutoShapeType.Rectangle, 200, 200, 100, 100);
IShape ConnectorShape = worksheet.getShapes().addConnector(ConnectorType.Straight, 1, 1, 101, 101);
ConnectorShape.Width=10;
// To detach the ends of the connector to other shapes
ConnectorShape.getConnectorFormat().beginConnect(ShapeBegin, 3);
ConnectorShape.getConnectorFormat().endConnect(EndBegin, 0);
// Add shape using range
IShape rectangle3 = worksheet.getShapes.addShape(AutoShapeType.Rectangle, worksheet.Range["B12"]);
IShape rectangle4 = worksheet.getShapes.addShape(AutoShapeType.Rectangle, worksheet.Range["D12"]);
//Add connector for rectangle3 and rectangle4, by adding connector directly to a range
IShape rangeConnectorShape = worksheet.getShapes().addConnector(ConnectorType.Curve, worksheet.Range["B12:D12"]);
注意: 使用连接符格式的一个限制是,可以添加连接符来连接两个常规形状并将其导出,但只有在将形状拖到电子表格中后,才会显示连接符。
形状是图形对象,并且是Shapes集合的成员。在GcExcel中,“形状”集合表示指定工作表中的形状集合。将所有图形对象(包括图表,注释,图片,切片器,常规形状和形状组)定义为“形状”。
也可以使用IShapes界面中提供的不同方法,将名称分配给形状,可以是图表,图片,连接器或任何自动形状。通过为形状分配名称,可以直接访问它,并且可以修改其属性,而不必遍历所有形状的列表。
要在GcExcel工作表中添加形状,可以使用 IShapes 接口的 addShape 方法。该方法提供重载,允许您在指定位置或指定范围添加各种形状。
请参考以下示例代码,在特定位置和特定范围添加形状:
// create a new workbook
Workbook workbook = new Workbook();
// Fetch default worksheet
IWorksheet worksheet = workbook.getWorksheets().get(0);
// Create shape with custom name at a specific position
IShape shape = worksheet.getShapes().addShape("Balloon", AutoShapeType.Balloon, 50, 50, 100, 200);
// Add shape to a range
//IShape balloonShape = worksheet.getShapes().addShape(AutoShapeType.Rectangle, worksheet.setRange["F5:I10"]);
// save to an excel file
workbook.save("BalloonShape.xlsx");
请参考以下示例代码,为图表分配名称。
// create a new workbook
Workbook workbook = new Workbook();
// Fetch default worksheet
IWorksheet worksheet = workbook.getWorksheets().get(0);
IShape shape = worksheet.getShapes().addChart("Area Chart with CustomName", ChartType.Area, 250, 20, 360, 230);
worksheet.getRange("A1:C13").setValue(new Object[][] {
{ null, "Blue Series", "Orange Series" },
{ "Jan", 0, 59.1883603948205 },
{ "Feb", 44.6420211591501, 52.2280901938606 },
{ "Mar", 45.2174930051225, 49.8093056416248 },
{ "Apr", 62, 37.3065749226828 },
{ "May", 53, 34.4312192530766 },
{ "Jun", 31.8933622049831, 69.7834561753736 },
{ "Jul", 41.7930895085093, 63.9418103906982 },
{ "Aug", 73, 57.4049534494926 },
{ "Sep", 49.8773891668518, 33 },
{ "Oct", 50, 74 },
{ "Nov", 54.7658428630216, 22.9587876597096 },
{ "Dec", 32, 54 },
});
//Get chart by custom name
IShape areaChart = worksheet.getShapes().get("Area Chart with CustomName");
areaChart.getChart().getSeriesCollection().add(worksheet.getRange("A1:C13"), RowCol.Columns);
areaChart.getChart().getChartTitle().setText("Area Chart");
//save to an excel file
workbook.save("ChartName.xlsx");
您可以使用IShapes界面的 AddPicture 方法在电子表格的单元格上插入图片。该方法允许您在特定位置或特定范围添加图片。GcExcel中的 IPictureFormat 接口允许用户在使用电子表格时自定义图片并设置其格式。
在GcExcel中处理图片时,请参考以下示例代码:
// Add a picture through stream
string path = @"Images\flower.jpg";
FileStream stream = System.IO.File.Open(path, FileMode.Open);
IShape picture = worksheet.Shapes.AddPicture(stream, ImageType.JPG, 480, 10, 100, 100);
// Add a picture through file at specific location
// IShape picture = worksheet.getShapes().addPicture(@"Images\flower.jpg", 480, 10, 100, 100);
// Add a picture to a specific range
// IShape pictureInRange = worksheet.getShapes().addPicture("flower.jpg", worksheet.Range["D3:F5"]);
// Fill the inserted picture
picture.getFill().solid();
picture.getFill().getColor().setRGB(Color.AliceBlue);
//Customize the inserted picture
picture.getPictureFormat().getCrop().setPictureWidth(80);
请参考以下示例代码为图片分配名称。
// create a new workbook
Workbook workbook = new Workbook();
// Fetch default worksheet
IWorksheet worksheet = workbook.getWorksheets().get(0);
// Create shape with custom name
IShape shape = worksheet.getShapes().addPicture("Custom Name to Image", "image.png", 10, 10, 250, 150);
// Get the picture name
System.out.println(shape.getName().toString());
// save to an excel file
workbook.save("PictureName.xlsx");
要查看运行的代码,请参阅将形状添加到范围和将图片添加到范围演示。
在GcExcel中使用形状和图片包含以下使用方式: