博客
关于我
NPOI在Excel中插入图片
阅读量:802 次
发布时间:2023-02-17

本文共 3078 字,大约阅读时间需要 10 分钟。

NPOI在Excel中插入图片的步骤说明

1. 读取图片文件并添加到工作簿中

首先,我们需要读取图片文件并将其添加到Excel工作簿中。以下是实现步骤:

// 读取图片文件byte[] imgBytes = System.IO.File.ReadAllBytes(@"CurvatureMaxPart1.bmp");// 添加图片到工作簿中int pictureIdx = wk.AddPicture(imgBytes, PictureType.PNG);

2. 设置画部和锚点

接下来,我们需要为插入的图片创建画部,并设置锚点以确定图片的位置。以下是详细步骤:

2.1 创建画部

IDrawing patriarch = image_sheet.CreateDrawingPatriarch();

2.2 设置锚点

锚点由8个参数决定,分别表示起始单元格和终止单元格的坐标偏移量和坐标。以下是常见的设置示例:

int rowline = 1; // y方向int colline = 0; // x方向IClientAnchor anchor = patriarch.CreateAnchor(    0,  // 起始单元格的X坐标偏移    0,  // 起始单元格的Y坐标偏移    0,  // 终止单元格的X坐标偏移    0,  // 终止单元格的Y坐标偏移    colline + j + 1, // 起始单元格的列数    rowline + i + 1,  // 起始单元格的行数    colline + 1 + j + 1, // 终止单元格的列数    rowline + 1 + 1    // 终止单元格的行数);

3. 插入图片

将设置好的锚点和图片索引结合,插入到指定位置:

IPicture pict = patriarch.CreatePicture(anchor, pictureIdx);

4. 重复插入多张图片

如果需要插入多张图片,可以重复上述步骤,确保每张图片的位置正确设置。

5. 保存Excel文件

最后,将修改后的Excel文件保存到指定路径:

using (FileStream fs = File.OpenWrite("bbb2.xls")){    wk.Write(fs);}

示例完整代码

以下是一个完整的插入图片的代码示例:

using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;namespace Test4NPIO{    class Program    {        static void Main(string[] args)        {            HSSFWorkbook wk = new HSSFWorkbook();            ISheet image_sheet = wk.CreateSheet("Images");            // 读取图片文件            byte[] imgBytes = System.IO.File.ReadAllBytes(@"CurvatureMaxPart1.bmp");            // 添加图片到工作簿中            int pictureIdx = wk.AddPicture(imgBytes, PictureType.PNG);            // 创建画部            IDrawing patriarch = image_sheet.CreateDrawingPatriarch();            // 设置锚点            int rowline = 1;            int colline = 0;            for (int i = 0; i < 20; i++)            {                for (int j = 0; j < 7; j++)                {                    IClientAnchor anchor = patriarch.CreateAnchor(                        0, 0,                        0, 0,                        colline + j + 1,                        rowline + i + 1,                        colline + 1 + j + 1,                        rowline + 1 + 1                    );                    IPicture pict = patriarch.CreatePicture(anchor, pictureIdx);                }            }            // 读取txt文件并写入Confidence表            string[] txtLines = File.ReadAllLines(@"C:\Users\29939\Desktop\当前项目文件\res\data.txt");            for (int i = 0; i < txtLines.Length; ++i)            {                string[] line = txtLines[i].Split(',');                IRow dataRow = confidence_sheet.CreateRow(i);                for (int j = 0; j < line.Length; j++)                {                    ICell cell = dataRow.CreateCell(j + 1);                    cell.SetCellValue(line[j]);                    cell.CellStyle = cellStyle;                }            }            // 保存Excel文件            using (FileStream fs = File.OpenWrite("bbb2.xls"))            {                wk.Write(fs);            }        }    }}

注意事项

  • 确保图片文件路径正确。
  • 确保工作簿和工作表已经创建。
  • 调整锚点参数根据实际需要,确保图片位置准确。
  • 保存Excel文件时,确保目标路径存在。

通过以上步骤,您可以成功在Excel表格中插入多张图片,并管理图片的位置和格式。

转载地址:http://sejfk.baihongyu.com/

你可能感兴趣的文章
NR,NF,FNR
查看>>
nrf开发笔记一开发软件
查看>>
NSSet集合 无序的 不能重复的
查看>>
nullnullHuge Pages
查看>>
numpy 用法
查看>>
Numpy如何使用np.umprod重写range函数中i的python
查看>>
oauth2-shiro 添加 redis 实现版本
查看>>
OAuth2.0_JWT令牌-生成令牌和校验令牌_Spring Security OAuth2.0认证授权---springcloud工作笔记148
查看>>
OAuth2.0_JWT令牌介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记147
查看>>
OAuth2.0_介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记137
查看>>
OAuth2.0_完善环境配置_把资源微服务客户端信息_授权码存入到数据库_Spring Security OAuth2.0认证授权---springcloud工作笔记149
查看>>
OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140
查看>>
OAuth2.0_授权服务配置_令牌服务和令牌端点配置_Spring Security OAuth2.0认证授权---springcloud工作笔记143
查看>>
OAuth2.0_授权服务配置_客户端详情配置_Spring Security OAuth2.0认证授权---springcloud工作笔记142
查看>>
OAuth2.0_授权服务配置_密码模式及其他模式_Spring Security OAuth2.0认证授权---springcloud工作笔记145
查看>>
OAuth2.0_授权服务配置_资源服务测试_Spring Security OAuth2.0认证授权---springcloud工作笔记146
查看>>
OAuth2.0_环境介绍_授权服务和资源服务_Spring Security OAuth2.0认证授权---springcloud工作笔记138
查看>>
OAuth2.0_环境搭建_Spring Security OAuth2.0认证授权---springcloud工作笔记139
查看>>
oauth2.0协议介绍,核心概念和角色,工作流程,概念和用途
查看>>
OAuth2:项目演示-模拟微信授权登录京东
查看>>