jxl导出数据(Excel+图片)

本文档展示了如何使用jxl库创建Excel文件,包括设置单元格宽度、标题、表头,并且详细说明了如何将图片插入到Excel中。通过控制列宽和合并单元格,创建了一个包含公司信息的Excel表格。最后,讨论了文件保存路径的选择,包括绝对路径、相对路径和上传到FTP的过程。
摘要由CSDN通过智能技术生成

1.*Controller

/*根据绝对路径生产Excel,相对路径获取*/
String path = req.getSession().getServletContext().getRealPath("/");
String npath = req.getContextPath();
final String[] arr = FileUtils.getBaseAndName(userId,FileUtils.EXCEL_EXTEND,path,dt,npath);
final int[] coteWidths = new int[] { 13, 13, 20, 20};
final String[] titles = new String[] {"公司编号", "公司名称", "联系人名称", "联系人电话"};
ExportExcel.getBean().reportExcel(arr[0], arr[1], list, 
title, coteWidths, titles, null);
// String newPath = FileUtils.forExcelToFtp(arr[0]+arr[1], arr[1], dt);//ftp路径
// String newPath = arr[0]+arr[1];//绝对路径
String newPath = arr[2]+arr[1];//相对路径

2.FileUtils

/** 上传文件保存的临时目录 */
public static final String tempPath = "/excel/";
/**
* 根据当前登录用户获得临时文件夹路径和即将产生的文件名

* @param userId
*            登录用户ID
* @param type
*            文件扩展名
* @return
*/
public static String[] getBaseAndName(long userId, String type,String path,Date dt,String nPath) {
String base = path + tempPath + userId + "/";
String base1 = nPath + tempPath + userId + "/";
deleteFolder(base);
createFolder(base);
String fileName = DateUtil.formatDateNoStr(dt) + type;
return new String[] { base, fileName,base1 };
}


/**
* 已经生产的excel文件,上传到FTP
* @param base 根目录(文件存放的目录)
* @param fileName 存入ftp上的文件名
* @return excelPath 存入ftp文件路径的完整路径(base+fileName)
* */
public static String forExcelToFtp(String base, String fileName,Date dt) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");

在使用 jxls 导出图片时,如果您想要在图片上显示文字,可以虑以下几种方法: 1. 在上叠加文字:您可以在图片生成,使用 Java 图形库(如 Graphics2D)在图片上叠加文字。通过设置文字的位置、字体、颜色等属性,将文字绘制在图片上。然后再将有文字的图片导出。 2. 使用文本框:如果您正在使用 Excel 模板来生成图片,可以在模板中插入一个文本框,并将需要显示的文字放置在文本框中。然后使用 jxls数据填充到模板中,并导出生成的图片。这样可以在图片中显示指定的文字。 下面是使用 jxls 实现上述方法的示例代码: ```java // 方法1:在图片上叠加文字 BufferedImage image = ImageIO.read(new File("path/to/image.png")); Graphics2D graphics = image.createGraphics(); graphics.setColor(Color.BLACK); graphics.setFont(new Font("Arial", Font.PLAIN, 12)); graphics.drawString("Hello, World!", x, y); // 在指定坐标位置绘制文字 graphics.dispose(); ImageIO.write(image, "png", new File("path/to/output.png")); // 方法2:使用文本框 InputStream is = new FileInputStream("path/to/template.xls"); OutputStream os = new FileOutputStream("path/to/output.xls"); Context context = new PoiContext(); context.putVar("text", "Hello, World!"); JxlsHelper.getInstance().processTemplate(is, os, context); ``` 请根据您的具体需求选择适合的方法,并相应调整代码。希望能对您有所帮助!如有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值