Tag: apache poi

在excel Apache poi java中为合并的单元格添加边框。

我正在使用Apache POI,我需要在一系列单元格或合并区域中放置边框。 我正在将这些单元格合并为三行五列。 但是我无法为它添加边框。 那我该怎么做?

Java:Apache POI:我可以从MS Word(.doc)文件中获取干净的文本吗?

当我使用Apache POI时,我(以编程方式)从MS Word文件获取的字符串与我使用MS Word打开文件时可以看到的文本不同。 使用以下代码时: File someFile = new File(“some\\path\\MSWFile.doc”); InputStream inputStrm = new FileInputStream(someFile); HWPFDocument wordDoc = new HWPFDocument(inputStrm); System.out.println(wordDoc.getText()); 输出是一行包含许多“无效”字符(是的,“盒子”),以及许多不需要的字符串,如“ FORMTEXT ”,“ HYPERLINK \l “_Toc##########” ”( ‘#’是数字数字),“ PAGEREF _Toc########## \h 4 ”等。 以下代码“修复”了单行问题,但维护了所有无效字符和不需要的文本: File someFile = new File(“some\\path\\MSWFile.doc”); InputStream inputStrm = new FileInputStream(someFile); WordExtractor wordExtractor = new WordExtractor(inputStrm); for(String paragraph:wordExtractor.getParagraphText()){ System.out.println(paragraph); } 我不知道我是否使用了错误的方法来提取文本,但这就是我在查看POI的快速指南时所提出的 […]

FileInputStream vs ClassPathResource vs getResourceAsStream和文件完整性

我有一个奇怪的问题: 在src / main / resources中我有一个“template.xlsx”文件。 如果我这样做: InputStream is = new ClassPathResource(“template.xlsx”).getInputStream(); 或这个 : InputStream is = ClassLoader.getSystemResourceAsStream(“template.xlsx”); 或这个 : InputStream is = getClass().getResourceAsStream(“/template.xlsx”); 当我尝试创建工作簿时: Workbook wb = new XSSFWorkbook(is); 我收到此错误: java.util.zip.ZipException: invalid block type 但是,当我得到这样的文件时: InputStream is = new FileInputStream(“C:/…/src/main/resources/template.xlsx”); 有用 ! 哪里不对 ? 我无法将完整路径硬编码到文件中。 有人可以帮我弄这个吗 ? 谢谢

在POI中合并后设置值到单元格

我想在POI中形成如下的Excel输出: 从图像中可以清楚地看到,我分别在Header3,Header4和Header5下有3个子列。 清单如下: ListA – 包含A列的值 ListB – 包含B列的值 List1 – 是每行3列的数据库行列表。 第一列将在Header3下,第二列在Header 4下,第三列在Header 5下,即列C,F和I。 List2和List3 – 类似于List1,每个值分别在Header3,4和5下。列表2在列D,G和J下,List3在列E,H和K下。 问题1: 我将标题名称存储为具有5个值的列表。 如何迭代此列表以将值分配给合并区域? 我正在做类似下面但不起作用的事情: // first two headers for (int i = 0; i < headers.size() – 3; i++) { headerCell = headerRow.createCell(i); headerCell.setCellValue(allHeaders.get(i).toUpperCase()); headerCell.setCellStyle(styles.get("header")); } // Merging sheet.addMergedRegion(org.apache.poi.ss.util.CellRangeAddress.valueOf("$C$1:$E$1")); sheet.addMergedRegion(org.apache.poi.ss.util.CellRangeAddress.valueOf("$F$1:$H$1")); sheet.addMergedRegion(org.apache.poi.ss.util.CellRangeAddress.valueOf("$I$1:$K$1")); for (int i = 3; i […]

如何将POI HSSFWorkbook转换为字节?

调用简单的toBytes()确实产生了字节,但toBytes()抛出警告。 丢失文档信息 谷歌搜索给了我这个链接 ,看着Javadocs的工作表和POI HOW-TO说类似的东西。 基本上我不能在不丢失某些信息的情况下获取Bytes而应该使用write方法。 虽然写入工作正常但我真的需要发送字节。 有什么方法可以做到吗? 这是得到字节没有得到任何警告。

如何使用Apache POI创建简单的docx文件?

我正在寻找一个简单的示例代码或完整的教程,如何使用Apache POI及其底层openxml4j创建docx文件。 我尝试了以下代码(在Content Assist中提供了很多帮助,感谢Eclipse!)但是代码无法正常工作。 String tmpPathname = aFilename + “.docx”; File tmpFile = new File(tmpPathname); ZipPackage tmpPackage = (ZipPackage) OPCPackage.create(tmpPathname); PackagePartName tmpFirstPartName = PackagingURIHelper.createPartName(“/FirstPart”); PackagePart tmpFirstPart = tmpPackage.createPart(tmpFirstPartName, “ISO-8859-1”); XWPFDocument tmpDocument = new XWPFDocument(tmpPackage); //Exception XWPFParagraph tmpParagraph = tmpDocument.createParagraph(); XWPFRun tmpRun = tmpParagraph.createRun(); tmpRun.setText(“LALALALAALALAAAA”); tmpRun.setFontSize(18); tmpPackage.save(tmpFile); 抛出的exception如下: Exception in thread “main” java.lang.NullPointerException at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:235) at […]

Apache POI或docx4j用于处理docx文档

您认为将docx文档作为Java对象读取哪个更好?为什么? 换一种说法。 哪个库支持大多数单词标签?

如何确定空行?

如何使用Apache POI确定.xls文档中的空行?

读取Excel文档时出现问题(Java代码)

我有一些Java代码读取Excel数据。 在运行Java代码时,它显示以下错误。 帮我解决同样的问题。 另外,我需要知道其他读取.xlsx文件的方法。 (小编辑)我如何用各自的列打印行。 例如: Age 19 20 21 Salary 35k 20k 40k . . . 线程“main”中的exceptionorg.apache.poi.poifs.filesystem.OfficeXmlFileException:提供的数据似乎位于Office 2007+ XML中。 您正在调用处理OLE2 Office文档的POI部分。 您需要调用POI的不同部分来处理org.apache.poi.poifs.storage中的org.apache.poi.poifs.storage.HeaderBlock。(HeaderBlock.java:131)中的数据(例如XSSF而不是HSSF)。 .HeaderBlock。(HeaderBlock.java:104)org.apache.poi.poifs.filesystem.POIFSFileSystem。(POIFSFileSystem.java:138)org.apache.poi.hssf.usermodel.HSSFWorkbook。(HSSFWorkbook.java:322)在ExcelRead.main的org.apache.poi.hssf.usermodel.HSSFWorkbook。(HSSFWorkbook.java:303)(ExcelRead.java:18) Java代码如下: import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Iterator; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; public class ExcelRead { public static void main(String[] args) { try { […]

使用poi-ooxml jar文件创建.docx文件

我正在尝试使用Apache POI-ooxml jar文件创建一个简单的.docx文件。 当我添加jar时,一切看起来都很好,Eclipse不会抱怨任何错误。 但是,当我运行该应用程序时,应用程序崩溃说: 02-19 11:05:36.555: E/AndroidRuntime(17223): java.lang.VerifyError: org/apache/poi/xwpf/usermodel/XWPFDocument 02-19 11:05:36.555: E/AndroidRuntime(17223): at com.example.filegenerator.MainActivity$2.onClick(MainActivity.java:177) 02-19 11:05:36.555: E/AndroidRuntime(17223): at android.view.View.performClick(View.java:4101) 02-19 11:05:36.555: E/AndroidRuntime(17223): at android.view.View$PerformClick.run(View.java:17088) 02-19 11:05:36.555: E/AndroidRuntime(17223): at android.os.Handler.handleCallback(Handler.java:615) 02-19 11:05:36.555: E/AndroidRuntime(17223): at android.os.Handler.dispatchMessage(Handler.java:92) 02-19 11:05:36.555: E/AndroidRuntime(17223): at android.os.Looper.loop(Looper.java:153) 02-19 11:05:36.555: E/AndroidRuntime(17223): at android.app.ActivityThread.main(ActivityThread.java:5096) 02-19 11:05:36.555: E/AndroidRuntime(17223): at java.lang.reflect.Method.invokeNative(Native Method) 02-19 11:05:36.555: E/AndroidRuntime(17223): at […]