`
1260533105
  • 浏览: 15823 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Excel表格与PDF文件导出

阅读更多

view类在Spring控制器配置文件中的配置

	<!-- 配置Excel文件解析器  -->
	<bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
		<!-- 配置优先级 假如存在一个excelView.jsp页面,如果这个页面的优先级大于Excel                 视图类,则直接跳转到jsp页面,而不执行到处Excel文件操作 -->
		<property name="order" value="10"/>
	</bean>
	<bean id="excelView" class="com.lovo.view.UserListViewResolver"/>
	<bean id="pdfView" class="com.lovo.view.WordListPdfView"/>

 导出Excel表格类

package com.lovo.view;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.web.servlet.view.document.AbstractExcelView;

import com.lovo.entity.User;

/**
 * 使用静态类AbstractExcelView生成excel文件
 * @author tian
 */
public class UserListViewResolver extends AbstractExcelView {

	@Override
	protected void buildExcelDocument(Map<String, Object> map,
			HSSFWorkbook book, HttpServletRequest req, HttpServletResponse resp)
			throws Exception {
		resp.setContentType("application/vnd.ms-excel");
		
		//由于Tomcat内部编码被改成了utf-8 因此需要将告诉浏览器的中文文件名再转回成iso-8859-1
		// 浏览器才能够识别出该中文文件名
		resp.setHeader("Content-Disposition",
				"inline;filename="+new String("用户列表".getBytes(), "iso-8859-1"));
		
		HSSFSheet sheet = book.createSheet("用户列表");
		
		HSSFCell tempCell;
		tempCell = getCell(sheet, 0, 0);
		setText(tempCell, "用户名");
		tempCell = getCell(sheet, 0, 1);
		setText(tempCell, "密码");
		
		List<User> list = (List<User>) map.get("userList");
		
		for(int i=0;i<list.size();++i){
			tempCell = getCell(sheet, i+1, 0);
			setText(tempCell, list.get(i).getUsername());
			tempCell = getCell(sheet, i+1, 1);
			setText(tempCell, list.get(i).getPassword());
		}
	}

}

 导出PDF类

package com.lovo.view;

import java.awt.Color;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.view.document.AbstractPdfView;

import com.lowagie.text.Document;
import com.lowagie.text.Font;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfWriter;

public class WordListPdfView extends AbstractPdfView {

	@Override
	protected void buildPdfDocument(Map<String, Object> map, Document doc,
			PdfWriter pw, HttpServletRequest req, HttpServletResponse resp)
			throws Exception {
		resp.setHeader("Content-Disposition",
				"inline;filename="+new String("用户列表".getBytes(), "iso-8859-1"));
		
		resp.setContentType("application/pdf");
		
		List<String> words = (List<String>) map.get("words");
		
		BaseFont bfont = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", false);
		Font font = new Font(bfont, 14, Font.BOLD, Color.BLUE);
		
		for(int i=0,len=words.size();i<len;++i){
			doc.add(new Paragraph(words.get(i), font));
		}
	}


}

 控制器中,如何实现导出功能

	/**
	 * 使用AbstractExcelView生成Excel文件
	 * 为什么返回excelView后就能跳转到UserListViewResolver???
	 * @param map
	 * @return
	 */
	@RequestMapping("/getExcel")
	public String getExcel(ModelMap map){
		List<User> list = new ArrayList<>();
		User u1 = new User("jack", "123");
		User u2 = new User("bob", "234");
		User u3 = new User("marry", "567");
		list.add(u1);
		list.add(u2);
		list.add(u3);
		
		map.addAttribute("userList", list);
		
		return "excelView";
	}
	
	@RequestMapping("/getPdf")
	public String getPdf(ModelMap map){
		List<String> words = new ArrayList<>();
		words.add("shit!");
		words.add("fuck!");
		words.add("foolish!");
		
		map.addAttribute("words", words);
		
		return "pdfView";
	}

 

分享到:
评论

相关推荐

    导出 Excel 以及转化为 PDF 导出

    本篇将深入探讨如何使用 Java 库 `easypoi` 和 `Spire.XLS.Free` 实现 Excel 的导出及将其转化为 PDF 文件的过程。 首先,`easypoi` 是一个基于 Apache POI 的 Java 框架,专门用于处理 Office 文档,包括 Excel。...

    easypoi导入导出excel表格.pdf

    首先,我们将要讲述的是easypoi这一Java库在处理Excel表格导入导出功能的应用。在Java开发中,对于数据的导入导出,尤其是Excel表格,是一种非常常见的需求。而easypoi为我们提供了简洁的方式来实现这一功能。 ### ...

    如何将PDF转换成excel表格.docx

    其中,转换PDF文件到excel表格是最常见的一种需求。那么,如何将PDF转换成excel表格呢? 在本文中,我们将介绍如何使用迅捷PDF转换器将PDF文件转换成excel表格。迅捷PDF转换器是一个功能强大且易于使用的PDF转换...

    jQuery导出excel表格文件pdf文件CSV文件代码.zip

    标题中的“jQuery导出excel表格文件pdf文件CSV文件代码”是指使用jQuery库来实现将数据导出为Excel、PDF和CSV格式的功能。这种技术在Web应用中非常常见,特别是那些需要用户下载或保存数据的场景。jQuery是一个轻量...

    C#导出Excel 导出PDF

    总结来说,C#通过不同的库和API提供了解决方案来导出Excel和PDF文件。这不仅增强了应用程序的功能,也提高了用户的数据管理和分享能力。在项目开发中,理解并熟练运用这些技术对于提升用户体验和增强系统功能具有...

    java Excel文件转PDF文件

    在Java编程环境中,将Excel文件转换为PDF文件是一项常见的任务,尤其在数据报告或文档格式转换的场景下。本文将详细介绍如何使用Apache POI库处理Excel数据,以及使用iText库将这些数据导出为PDF格式。Apache POI是...

    jQuery导出excel表格文件pdf文件CSV文件代码

    首先,我们需要将表格内容转换为纯文本或者SVG,然后用`jsPDF`的API创建PDF文件: ```javascript var pdf = new jsPDF('p', 'mm', 'a4'); pdf.autoTable({html: '#table_id'}); pdf.save('export.pdf'); ``` 至于...

    读取PDF中的excel表格,并写入excel中

    openpyxl库允许我们设置单元格样式、公式和其他高级特性,以保持与原始Excel表格的一致性。 6. **注意事项**: - PDF中的表格可能有各种格式,可能需要调整解析策略以适应不同的布局。 - 如果表格包含复杂格式...

    easypoi的使用demo,包含Excel模板导出,html导出Excel,Excel导出pdf等

    首先,你需要将Excel文件读取为一个工作簿对象,然后利用PDF生成器,将每个工作表转换为PDF页面。Easy POI的`EasyExcel.read(fileName).sheet().doRead()`方法可以读取Excel,再通过第三方库的API将数据转换成PDF...

    java导出文件到 pdf,excel,word

    二、Excel文件导出 对于Excel文件,Java中最常用的库是Apache POI。POI提供了HSSF(针对旧版的Microsoft Excel .xls格式)和XSSF(针对较新的.xlsx格式)接口。通过这些接口,你可以创建工作簿、工作表,然后添加...

    复杂多表头excel表格的导出及布局,支持拓展

    总结来说,掌握复杂多表头Excel表格的创建和导出技巧,能有效提高数据管理和分析的效率。无论是手动操作还是编程实现,理解并熟练运用这些方法,都将极大地提升你在处理数据时的灵活性和适应性。在实际工作中,根据...

    excel转pdf(解决导出的pdf和excel格式不一致问题).rar

    然而,有时在进行这样的转换时,可能会遇到一个常见问题:导出的PDF文件与原始Excel文件的格式不一致。这可能是由于Excel中的复杂格式、公式或者特定的排版设置在PDF中无法完全保留导致的。本资源提供了一个解决方案...

    Excel表格导入导出

    导出Excel表格则是将Excel中的数据保存为其他格式,如CSV、TXT、XML、PDF等,或者将整个工作簿保存为新的Excel文件。在Excel中,导出操作可以通过“文件”菜单的“另存为”功能实现,选择目标格式并设置保存路径即可...

    js导出excel(xlsx格式)、CVS、PDF、打印

    Javascript导出excel为xlsx格式,兼容IE6+和主流浏览器,下载下来直接可以使用。 其他javascript导出excel插件可看作者文章:https://blog.csdn.net/qq_21693027/article/details/80459677

    TIA博途V17中DB块如何导出成源文件或XML文件或EXCEL中?.pdf

    TIA博途V17中DB块如何导出成源文件或XML文件或EXCEL中? 博途中导出DB块的3种方法介绍。

    使用itextpdf将excel转化为pdf + pdf加水印

    这个过程中可能涉及到对Excel表格的样式、字体、颜色等元素的保持,以确保转换后的PDF文件与原Excel文件视觉上一致。 **PDF加水印**是另一个关键步骤,用于在PDF文档上添加不可擦除的信息,如日期、公司标志或"机密...

    .net6 WebApi Excel转PDF并下载PDF文件

    创建一个WebApi接口,让用户能够通过HTTP请求获取转换后的PDF文件: ```csharp [HttpGet] [Route("api/DownloadPdf")] public HttpResponseMessage DownloadPdf() { var excelFilePath = "path_to_your_...

    使用ITEXT导出PDF、WORD,APACHE POI导出EXCEL报表文件

    使用ITEXT,你可以方便地生成包含文本、图像、表格等复杂内容的PDF文件。例如,要创建一个简单的PDF,你需要创建一个`Document`对象,然后使用`PdfWriter`将其与输出流关联。接着,通过`Paragraph`、`Font`等类添加...

    帆软报表导出各种格式(excel/word/pdf等)

    帆软报表的PDF导出功能允许用户将报表转换为高质量的PDF文件,便于打印、分发和长期保存。PDF导出过程中,帆软会处理报表的字体、图像和页面设置,确保在任何设备上都能准确呈现。 在压缩包中的"帆软报表导出各种...

Global site tag (gtag.js) - Google Analytics