Tag: apache poi

通过XSSFRichTexString和Jsoup进行Apache POI Excel文本格式化

我从数据库中获取了html数据。 以下是示例: Iam Bold Iam Red Colored and Underlined Just a Normal Text Iam Bold and italic with colored and underlined 现在我的excel输出中存在相同的格式。 请参阅下面的图片了解excel输出。 我知道通过使用Jsoup,你可以解析上面的html并使用XSSFRichTextString,你可以在xssfcell中显示richtext。 同样通过使用子弹字符我可以获得子弹图标。 但我需要输出中的完整文本。 但我不知道如何准确地做到这一点来获得确切的输出。 如何使用XSSFRichTextString做到这一点? 请帮帮我

将样式文本写入.docx文件

我正在尝试编写一个将文本写入.docx文件的应用程序。 我的应用程序使用JTextPane,因此用户可以编写他/她想要的任何内容,它还提供了许多按钮,如粗体,字体颜色,字体大小……等。 我遇到的问题是在写入.docx文件时保持JTextPane上文本的样式。 我对Swing和Apache POI相当新,所以示例代码和/或详细说明会有所帮助。 我有这个:(垫指的是JTextPane) FileOutputStream output = new FileOutputStream(file); XWPFDocument document = new XWPFDocument(); XWPFParagraph paragraph = document.createParagraph(); XWPFRun run = paragraph.createRun(); run.setText(pad.getText()); document.write(output); output.close();

java中的Docx到Pdf转换器

以下代码不适用于Apache poi 3.16。 有人可以提供正确的解决方案,在我的项目中只有一些依赖使用 public void ConvertToPDF(String docPath, String pdfPath) { try { InputStream doc = new FileInputStream(new File(docPath)); XWPFDocument document = new XWPFDocument(doc); PdfOptions options = PdfOptions.create(); OutputStream out = new FileOutputStream(new File(pdfPath)); PdfConverter.getInstance().convert(document, out, options); System.out.println(“Done”); } catch (FileNotFoundException ex) { System.out.println(ex.getMessage()); } catch (IOException ex) { System.out.println(ex.getMessage()); } } 例外: Exception in […]

如何使用XSSF(Apache POI 3.8)调整图表大小?

我想知道是否有办法使用Apache POI(XSSF)调整图表的大小。 目前我正在使用Excel模板,该模板的图表在使用namedRanges插入更多数据时会发生变化。 一切正常,我面临的唯一麻烦是: 图表总是保持相同的大小,因此如果有更多的条目,它会变得混乱,使图表变得毫无用处。 我正在使用日期,但我无法在图表上将日期表示为日/月(17/10)。 基本上不是04/01/2001,它写的是36982。 该工作簿的目的是列出几个作业并检查它们在给定日期是否花费更长时间,该图表用于帮助识别更长时间的发生。 作业运行时间可能从几秒到几小时不等。 这是我正在使用的代码: package le_package.poi_tests.xssflibrary; import java.io.*; import java.text.SimpleDateFormat; import java.util.Date; import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Name; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class POIReadFile { public static void main(String[] args) { try { String jobName = “I am a job”; String jobParent = “I am your […]

如何使用Apache POI为docx文件中的段落设置标题样式?

我正在尝试使用poi创建一个docx文件,但我无法为段落设置标题样式。 XWPFDocument document= new XWPFDocument(); //Write the Document in file system FileOutputStream out = new FileOutputStream(new File(“C:/Users/2/Desktop/RequirementModelDocument.docx”)); XWPFParagraph paragraph = document.createParagraph(); XWPFRun run=paragraph.createRun(); paragraph.setAlignment(ParagraphAlignment.LEFT); paragraph.setStyle(“Heading1”); run.setText(reqLevel.getName()); run.setBold(true); run.setFontFamily(“Calibri Light (Headings)”); 它就像忽略了paragraph.setStyle(“Heading1”); 线。 我看过apache的例子,但我看不到任何关于这个问题的例子。

Java POI Excel创建新列和新行

好吧,我迭代一个列表,而不是水平地将值插入单元格,我将值垂直放在单元格中。 它第一次通过列表工作正常,但当我进入列表第二次它吹掉第一个列表并在第二列中替换它。 如果我在循环结束时删除row= 0 ,它看起来像: val 1 val 2 val 1 val 2 ========= int row = 0; int k = 1; for (List dataList: someList) { Row myRow = sheet.createRow ((short)row); myRow.createCell(k).setCellValue (dataList.getVal())); myRow = sheet.createRow ((short)row++); myRow.createCell(k).setCellValue (dataList.getSecVal())); myRow = sheet.createRow ((short)row++); k++; row = 0; }

使用Tikajar子进行Mimetype检查

我正在开发标准的单独Java批处理。 我正在尝试使用Tika Jars确定文件附件mimetype。 我正在使用Tika 1.4 Jar文件。 我的代码看起来像 Parser parser= new AutoDetectParser(); InputStream stream = new FileInputStream(fileAttachment); int writerHandler =-1; ContentHandler contentHandler= new BodyContentHandler(writerHandler); Metadata metadata= new Metadata(); parser.parse(stream, contentHandler, metadata, new ParseContext()); String mimeType = metadata.get(Metadata.CONTENT_TYPE); logger.debug(“File Attachment: “+fileattachment.getName()+” MimeType is: “+mimeType); 此代码对于office 03和07文档无法正常工作。 从eclipse运行时我得到了正确的mimetypes。 我构建jar文件并从命令运行它给出错误的mimetypes。 out put from command ———— File Attachment: Testpdf.pdf MimeType […]

使用Apache POI 4.0运行官方示例LineChars和ScatterChart时出现问题

Apache POI 4.0的官方示例LineChart和ScatterChart存在问题。 它们编译运行没有错误,但无法打开创建的Excel文件,说明存在不可读的内容。 Excel 2010和2016提供了从工作簿中恢复数据的选项,单击“是”后,将显示此对话框 。 可能是什么问题?

在POI中使用quotePrefix添加单元格

我想在包含引号前缀的xlsx工作簿表单中添加一个单元格,我正在尝试使用POI库创建该表单。 如何添加此类单元格 我在maven central上找到了对CTXf.setQuotePrefix(boolean quotePrefix)的引用,但是不知道如何将它添加到XSSFCell 我尝试使用下面的代码 XSSFCell cell=row.createCell(cellIndex); CTXfImpl ctxf= new CTXfImpl(XmlObject.Factory.newInstance().schemaType()); ctxf.setQuotePrefix(true); cell.getCTCell().set(ctxf); cell.setCellValue(data); 得到例外 Exception in thread “main” java.lang.NullPointerException at org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTXfImpl.setQuotePrefix(Unknown Source) 谁能帮我这个

如何用APACHE POI对单词表进行colspan

我有一个代码,但是对于rowspan来说是一个表。 你能帮我把它转换成colspan代码吗? private static void mergeCellVertically(XWPFTable table, int col, int fromRow, int toRow){ for(int rowIndex = fromRow; rowIndex <= toRow; rowIndex++){ XWPFTableCell cell = table.getRow(rowIndex).getCell(col); if(rowIndex == fromRow){ // The first merged cell is set with RESTART merge value cell.getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.RESTART); }else{ // Cells which join (merge) the first one, are set with CONTINUE cell.getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.CONTINUE); } […]