导航:首页 > 编程语言 > java生成表格图片

java生成表格图片

发布时间:2023-09-18 01:50:53

java 生成PDF表格

实现代码如下:

package com.qhdstar.java.pdf;
import java.awt.Color;
import java.io.FileOutputStream;
import com.lowagie.text.Chapter;
import com.lowagie.text.Document;
import com.lowagie.text.Font;
import com.lowagie.text.FontFactory;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Section;
import com.lowagie.text.pdf.PdfWriter;
/**
* 描述:TODO 【JAVA生成PDF】
*
*
* @title GeneratePDF
* @version V1.0
*/
public class GeneratePDF {

public static void main(String[] args) {

//调用第一个方法,向C盘生成一个名字为ITextTest.pdf 的文件
try {
writeSimplePdf();
}
catch (Exception e) { e.printStackTrace(); }

//调用第二个方法,向C盘名字为ITextTest.pdf的文件,添加章节。
try {
writeCharpter();
}
catch (Exception e) { e.printStackTrace(); }

}

public static void writeSimplePdf() throws Exception {

// 1.新建document对象
// 第一个参数是页面大小。接下来的参数分别是左、右、上和下页边距。
Document document = new Document(PageSize.A4, 50, 50, 50, 50);

// 2.建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中。
// 创建 PdfWriter 对象 第一个参数是对文档对象的引用,第二个参数是文件的实际名称,在该名称中还会给出其输出路径。
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("C:\\ITextTest.pdf"));

// 3.打开文档
document.open();

// 4.向文档中添加内容
// 通过 com.lowagie.text.Paragraph 来添加文本。可以用文本及其默认的字体、颜色、大小等等设置来创建一个默认段落
document.add(new Paragraph("First page of the document."));
document.add(new Paragraph("Some more text on the first page with different color and font type.", FontFactory.getFont(FontFactory.COURIER, 14, Font.BOLD, new Color(255, 150, 200))));

// 5.关闭文档
document.close();
}

/**
* 添加含有章节的pdf文件
*
* @throws Exception
*/
public static void writeCharpter() throws Exception {

// 新建document对象 第一个参数是页面大小。接下来的参数分别是左、右、上和下页边距。
Document document = new Document(PageSize.A4, 20, 20, 20, 20);

// 建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中。
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("c:\\ITextTest.pdf"));

// 打开文件
document.open();

// 标题
document.addTitle("Hello mingri example");

// 作者
document.addAuthor("wolf");

// 主题
document.addSubject("This example explains how to add metadata.");
document.addKeywords("iText, Hello mingri");
document.addCreator("My program using iText");

// document.newPage();
// 向文档中添加内容
document.add(new Paragraph("\n"));
document.add(new Paragraph("\n"));
document.add(new Paragraph("\n"));
document.add(new Paragraph("\n"));
document.add(new Paragraph("\n"));
document.add(new Paragraph("First page of the document."));
document.add(new Paragraph("First page of the document."));
document.add(new Paragraph("First page of the document."));
document.add(new Paragraph("First page of the document."));
document.add(new Paragraph("Some more text on the first page with different color and font type.", FontFactory.getFont(FontFactory.defaultEncoding, 10, Font.BOLD, new Color(0, 0, 0))));
Paragraph title1 = new Paragraph("Chapter 1", FontFactory.getFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new Color(0, 0, 255)));

// 新建章节
Chapter chapter1 = new Chapter(title1, 1);
chapter1.setNumberDepth(0);
Paragraph title11 = new Paragraph("This is Section 1 in Chapter 1", FontFactory.getFont(FontFactory.HELVETICA, 16, Font.BOLD, new Color(255, 0, 0)));
Section section1 = chapter1.addSection(title11);
Paragraph someSectionText = new Paragraph("This text comes as part of section 1 of chapter 1.");
section1.add(someSectionText);
someSectionText = new Paragraph("Following is a 3 X 2 table.");
section1.add(someSectionText);
document.add(chapter1);

// 关闭文档
document.close();
}

}

㈡ 求解!JAVA 使用Apache POI将PPTX转图片出错。见下图

有时候我们需要从Excel文件中读取数据,或者我们为了商务或者财政的目的生成Excel格式的报表.Java没有对操作Excel文件提供内在的支持,所以我们需要寻找开源的APIs.当我开始寻找操作Excel的APIs时候,大部分人建议使用JExcel或者ApachePOI.在深入研究后,我发现由于以下主要原因ApachePOI是正确的选择.还有些关于高级特性的原因,但是我们不深入太多细节.1)Apache基金的支持.2)JExcel不支持xlsx格式而POI既支持xls格式又支持xlsx格式.3)ApachePOI是基于流的处理,因此更适合大文件和要求更少的内存.ApachePOI对处理Excel文件提供了强大的支持,并且能处理xls和xlsx格式的电子表格.关于ApachePOI一些重要的地方:1)ApachePOI包含适合Excel97-2007(.xls文件)的HSSF实现.2)ApachePOIXSSF实现用来处理Excel2007文件(.xlsx).3)ApachePOIHSSF和XSSF提供了读/写/修改Excel表格的机制.4)ApachePOI提供了XSSF的一个扩展SXSSF用来处理非常大的Excel工作单元.SXSSFAPI需要更少的内存,因此当处理非常大的电子表格同时堆内存又有限时,很合适使用.5)有两种模式可供选择--事件模式和用户模式.事件模式要求更少的内存,因为用tokens来读取Excel并处理.用户模式更加面向对象并且容易使用,因此在我们的示例中使用用户模式.6)ApachePOI为额外的Excel特性提供了强大支持,例如处理公式,创建单元格样式--颜色,边框,字体,头部,脚部,数据验证,图像,超链接等.ApachePOI的Maven依赖[java]viewplainorg.apache.poipoi3.10-FINALorg.apache.poipoi-ooxml3.10-FINALApachePOI的当前版本是3.10-FINAL.如果你使用单独的java应用,添加jars根据下面的图片.读取Excel文件假设我们有一个叫Sample.xlsx的Excel文件,里面有两个sheet并且下面图片中的数据.我们想要读取这个Excel文件并且创建Countrieslist.sheet1有些额外的数据,当我们解析时会忽略它.我们的国家(Country)javabean如下:Country.java[java]viewplainpackagecom.journaldev.excel.read;publicclassCountry{privateStringname;privateStringshortCode;publicCountry(Stringn,Stringc){this.name=n;this.shortCode=c;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicStringgetShortCode(){returnshortCode;}publicvoidsetShortCode(StringshortCode){this.shortCode=shortCode;}@OverridepublicStringtoString(){returnname+"::"+shortCode;}}读取Excel文件并创建Countrieslist代码如下:ReadExcelFileToList.java[java]viewplainpackagecom.journaldev.excel.read;importjava.io.FileInputStream;importjava.io.IOException;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;importorg.apache.poi.hssf.usermodel.HSSFWorkbook;importorg.apache.poi.ss.usermodel.Cell;importorg.apache.poi.ss.usermodel.Row;importorg.apache.poi.ss.usermodel.Sheet;importorg.apache.poi.ss.usermodel.Workbook;importorg.apache.poi.xssf.usermodel.XSSFWorkbook;{publicstaticListreadExcelData(StringfileName){ListcountriesList=newArrayList();try{///xlsfileFileInputStreamfis=newFileInputStream(fileName);//CreateWorkbookinstanceforxlsx/=null;if(fileName.toLowerCase().endsWith("xlsx")){workbook=newXSSFWorkbook(fis);}elseif(fileName.toLowerCase().endsWith("xls")){workbook=newHSSFWorkbook(fis);}//=workbook.getNumberOfSheets();//loopthrougheachofthesheetsfor(inti=0;irowIterator=sheet.iterator();while(rowIterator.hasNext()){Stringname="";StringshortCode="";//GettherowobjectRowrow=rowIterator.next();//Everyrowhascolumns,=row.cellIterator();while(cellIterator.hasNext()){//GettheCellobjectCellcell=cellIterator.next();//(cell.getCellType()){caseCell.CELL_TYPE_STRING:if(shortCode.equalsIgnoreCase("")){shortCode=cell.getStringCellValue().trim();}elseif(name.equalsIgnoreCase("")){//2ndcolumnname=cell.getStringCellValue().trim();}else{//randomdata,leaveitSystem.out.println("Randomdata::"+cell.getStringCellValue());}break;caseCell.CELL_TYPE_NUMERIC:System.out.println("Randomdata::"+cell.getNumericCellValue());}}//endofcelliteratorCountryc=newCountry(name,shortCode);countriesList.add(c);}//endofrowsiterator}//endofsheetsforloop//closefileinputstreamfis.close();}catch(IOExceptione){e.printStackTrace();}returncountriesList;}publicstaticvoidmain(Stringargs[]){Listlist=readExcelData("Sample.xlsx");System.out.println("CountryList\n"+list);}}这个程序很容易明白,主要步骤如下:1)根据文件类型(.xls与.xlsx)创建Workbook实例,xlsx用XSSFWorkbook,xls用HSSFWorkbook.我们可以基于文件名字使用工厂模式创建一个包装类来创建Workbook实例.2)使用WorkbookgetNumberOfSheets()来获取sheet的数量,然后循环解析每一个sheet.使用getSheetAt(inti)方法获取Sheet实例.3)获取Row和Cell迭代器来获取每一个Cell对象.ApachePOI在这里使用了迭代器模式.4)使用switch-case根据Cell的类型来处理它.

㈢ 用java将数据导出到wps表格中,怎么实现

importjava.io.IOException;
importjava.io.OutputStream;
importjava.math.BigDecimal;

importjavax.servlet.http.HttpServletResponse;

importorg.apache.poi.hssf.usermodel.HSSFCell;
importorg.apache.poi.hssf.usermodel.HSSFRow;
importorg.apache.poi.hssf.usermodel.HSSFSheet;
importorg.apache.poi.hssf.usermodel.HSSFWorkbook;


publicclassTest{
(HttpServletResponseresponse,
java.util.ListqueryList,intflag,String[]ywName,StringfileName)
throwsIOException{

response.setContentType("application/vnd.ms-excel;charset=GBK");
response.addHeader("Content-Disposition","attachment;filename="
+newString(fileName.getBytes("GBK"),"ISO8859_1"));
OutputStreamoutput=response.getOutputStream();

//创建新的Excel工作簿
HSSFWorkbookworkbook=newHSSFWorkbook();
HSSFSheetsheet;
HSSFRowrow;
HSSFCellcell;

sheet=workbook.createSheet();
StringstrReportName="查询结果列表";
workbook.setSheetName(0,strReportName);//新建一名为strReportName的工作表

//创建表头
//在索引0的位置创建行(最顶端的行)
row=sheet.createRow((short)0);

for(intkk=0;kk<ywName.length;kk++){

//在索引0的位置创建单元格(左上端)
cell=row.createCell(kk);
//cell.setCellStyle(HSSFCellStyle.ALIGN_CENTER);
//定义单元格为字符串类型
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
//设置字符显示格式,以unicode格式显示
//cell.setEncoding(HSSFCell.ENCODING_UTF_16);
//在单元格中输入一些内容
cell.setCellValue(ywName[kk]);

}

intline=1;
intcellWidth=ywName.length;
for(inti=0;i<queryList.size();i++){
//HashMappersonInfo=(HashMap)queryList.get(i);
Object[]personInfo=(Object[])queryList.get(i);
row=sheet.createRow((short)line);

for(intj=0;j<cellWidth;j++){
cell=row.createCell(j);
//cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
if(personInfo[j+flag]instanceofInteger){
if(personInfo[j+flag]!=null)
cell.setCellValue((Integer)personInfo[j+flag]);
else
cell.setCellValue("");
}elseif(personInfo[j+flag]instanceofBigDecimal){
if(personInfo[j+flag]!=null)
cell.setCellValue(newDouble(personInfo[j+flag]
.toString()));
else
cell.setCellValue("");
}elseif(personInfo[j+flag]instanceofDouble){
if(personInfo[j+flag]!=null)
cell.setCellValue((Double)personInfo[j+flag]);
else
cell.setCellValue("");
}else{
if(personInfo[j+flag]!=null)
cell.setCellValue(personInfo[j+flag].toString());
else
cell.setCellValue("");
}
}
line++;
}
workbook.write(output);
output.flush();
output.close();
}
}

给你个工具方法,把它放到类里面,直接调用就可以了

我解释下参数

/**

* @param response 获取响应,在action中使用getResponse()

* @param 数据集(从数据库获得的数据,注意和ywName顺序对应)

* @param flag 有行号为1,无行号为0

* @param ywName excel中每列名称

* @param fileName excel名

*/

//导出代码

String[] yName={"员工号","员工名称","机构号","机构名称","***xxx","dddd"};

ExportExcel.createDtcxEXCEL(getResponse(), pgr.getData(), 1,yName , "龙大哥_"+new Date().toString());


最后 导出,默认文件名是“龙大哥_(当天日期)”


这个代码放心用,只要把参数传对,就可导出EXCEL



如果觉得可行,望采纳

㈣ 如何让java利用POI导出excel表,并在Excel表中根据表格的数据生成柱形图。要求柱形图是动态的。

柱状图生成区域可以设置的大些

㈤ 怎么用JAVA动态生成一个表格

<td><tablewidth="100%"border="0"cellpadding="0"cellspacing="1"bgcolor="#a8c7ce">
<tr>
<tdwidth="25%"height="20"bgcolor="d3eaef"class="STYLE6"><divalign="center"><spanclass="STYLE10">种类编号</span></div></td>
<tdwidth="25%"height="20"bgcolor="d3eaef"class="STYLE6"><divalign="center"><滚卜渗spanclass="STYLE10">大脊种类名称</span></div></td>
<tdwidth="25%"height="20"bgcolor="d3eaef"class="STYLE6"><divalign="center"><spanclass="STYLE10">种类简介<弊和/span></div></td>
<tdwidth="25%"height="20"bgcolor="d3eaef"class="STYLE6"><divalign="center"><spanclass="STYLE10">修改</span></div></td>
</tr>

<%for(inti=1;i<pageSize;i++){
//Typetype=at.get(i);
%>
<tr>
<tdheight="20"bgcolor="#FFFFFF"class="STYLE19"align="center"name="id"><%=rs.getInt("id")%></td>
<tdheight="20"bgcolor="#FFFFFF"class="STYLE19"><divalign="center"id="typeName"><%=rs.getString("TYPE_NAME")%></div></td>
<tdheight="20"bgcolor="#FFFFFF"class="STYLE19"><divalign="center"id="typeIntro"><%=rs.getString("TYPE_INTRO")%></div></td>
<tdheight="20"bgcolor="#FFFFFF"><divalign="center"><spanclass="STYLE21"><ahref="kindUpdate.jsp?id=<%=rs.getInt("id")%>">修改</a></span></div></td>
</tr>

<inputtype="hidden"name="id"value="<%=rs.getInt("id")%>%>"/>

<%
if(!rs.next()){
break;
}
}%>
</table></td>
</tr>

阅读全文

与java生成表格图片相关的资料

热点内容
一个文件盒省内寄顺丰多少钱 浏览:41
诛仙62坐骑怎么升级到63 浏览:926
linux以日期查看日志记录 浏览:446
工业大数据是什么东西 浏览:881
魅族note3怎么重置网络 浏览:510
c语言程序设计模 浏览:92
儿童怎么做可编程机 浏览:603
数据计算属于什么统计学 浏览:921
07word怎么去掉标记 浏览:979
qq缓存的数据是什么 浏览:348
LED主Kv文件多少兆 浏览:856
苹果edge怎么删除下载文件 浏览:471
sas逻辑回归代码 浏览:572
用于keil下的stc器件数据库 浏览:400
新闻网站后台如何操作前台 浏览:539
在剪映app中怎么查看视频尺寸 浏览:9
linux文件成分包括 浏览:886
文件转换免费的软件 浏览:644
linuxwpsxlsx 浏览:482
小米手机怎么上移动网络连接失败怎么办 浏览:598

友情链接