Tag: apache poi

检查一个Excel工作表是否受保护并find密码(使用apache poi)

我需要执行以下操作: 用户下载Excel文件(这是一个模板)与一些列只读和其他可编辑;(只读列是通过保护整个表 //protect entire sheet sheet.protectSheet("password"); //create style for editable cells XSSFCellStyle editableStyle = workbook.createCellStyle(); editableStyle.setLocked(false); //for editable cells apply this style cell.setCellStyle(editableStyle); 用户修改模板文件,只填充可编辑的单元格 用户上传模板 在上传模板期间,我需要检查上传的文件是否是之前下载的文件,使用完全相同的“密码”进行保护。 我有可能获得密码,但它是编码,我不知道如何解码。 byte[] password = sheet.getCTWorksheet().getSheetProtection().getPassword(); 你能帮我么?

如何设置Excel中的行的数据格式?

我试图在Excel中设置数据types为date格式('yyyy-MM-dd'),为此我写了以下一段代码: …. Row r = null; CellStyle cellStyle = workbook.createCellStyle(); //CreationHelper createHelper = workbook.getCreationHelper(); cellStyle.setDataFormat( workbook.createDataFormat().getFormat("yyyy-MM-dd")); for(int i =0;i < 2;i++){ switch(i){ case 0: r = sheet.getRow(0); r.setRowStyle(cellStyle); break; case 1: r = sheet.getRow(1); r.setRowStyle(cellStyle); break; default: break; } } …. 我只发布了前两行的格式以供参考。 但是,当我运行我的代码,并打开Excel表格,并检查前两行的单元格的格式,那么它只是一般的。 更改没有反映在Excel工作表中。 我没有得到我在这里做错了什么。

根据textarea的输出更新excel文件

我的代码导入excel文件,然后把一个特定的列到一个textarea我想知道我将如何修改excel文件,如果我编辑了textarea编辑应保存在excel文件上的东西 String excelFilePath = "sample.xlsx"; FileInputStream inputStream = null; try { inputStream = new FileInputStream(new File(excelFilePath)); } catch (FileNotFoundException e1) { e1.printStackTrace(); } Workbook workbook = null; try { workbook = new XSSFWorkbook(inputStream); } catch (IOException e1) { e1.printStackTrace(); } Sheet firstSheet = workbook.getSheetAt(0); Iterator<Row> iterator = firstSheet.iterator(); while (iterator.hasNext()) { Row nextRow = iterator.next(); […]

使用apache POI在java中将数据写入xls,xlsx,csv文件

在使用Apache POI将一些数据写入Excel表单时遇到问题。 我的代码如下: public class DataExp implements Serializable { private static final Logger logger = Logger.getLogger(DataExp.class); public static File exportToCsv(List<WebInOutTrx> givenList, List<DataExpTmplt> dataTmpltList) throws IOException { String url = "D:\\"; File file = new File(url); String csv = "D:\\Output.csv"; CSVWriter csvWriter = new CSVWriter(new FileWriter(csv), ','); List<String[]> data = toStringArray(givenList, dataTmpltList); csvWriter.writeAll(data); csvWriter.close(); System.out.println(csv); return […]

无法打开超链接的文件Apache POI

我的超链接文件驻留在Whois目录中,并且dir和Excel文件都位于同一个父目录中。 由于相对path,我无法通过超链接访问我的文件。 我需要将这个Excel文件发送给几个收件人,而不会改变他们的选项。 我已经尝试getPath(),getCanonicalPath()和getAbsolutePath()无济于事。 这是我的代码: public void writeTheFile() throws Exception { int rowNum=-1; String line = ""; XSSFWorkbook workBook = new XSSFWorkbook(); XSSFSheet sheet = workBook.createSheet("Contact & Whois"); XSSFCreationHelper helper = workBook.getCreationHelper(); BufferedReader br = new BufferedReader(new FileReader(INPUT_FILE)); while((line = br.readLine()) != null) { rowNum++; XSSFRow currentRow=sheet.createRow(rowNum); currentRow.createCell(0).setCellValue(line.trim()); currentRow.createCell(1); XSSFHyperlink file_link_downloads = helper.createHyperlink(Hyperlink.LINK_FILE); Cell cell […]

如何使用rowIterator从不同的行开始num的零

{ FileInputStream F = new FileInputStream("C://test.xls"); HSSFWorkbook wb = new HSSFWorkbook(F); HSSFSheet s = wb.getSheetAt(0); Iterator<Row> rowIterator = s.iterator(); while (rowIterator.hasNext()) { Row row = rowIterator.next(); } 有人可以帮我吗? 任何人都可以帮助我。 ?

在excel中使用xssf库绘制带有箭头的行

我想以编程方式在excel表格中用箭头绘制一条线,我可以创build线条而不是箭头。 这里是我的代码,我需要改变我想要的东西; XSSFSimpleShape shape = drawing.createSimpleShape(a); shape.setShapeType(ShapeTypes.LINE); shape.setLineWidth(1.5); shape.setLineStyle(3); 我尝试使用shape.setShapeType(ShapeTypes.LEFT_ARROW); shape.setShapeType(ShapeTypes.RIGHT_ARROW); 和shape.setShapeType(ShapeTypes.UP_ARROW); 也是,但这并没有帮助我。 这是我的: 这就是我要的:

多个alignment到一个样式POI

我有一个问题分配多个alignment到一个 XSSFCellStyle。 它看起来像我只能使用setAlignment(short)方法一次分配一个alignment,即使我使用相同的方法分配不同的alignment,它也不会改变。 我有四种types的细胞方式(unbold,bold,italic,下划线)。 每个单元格对于每种types的单元格可能具有不同的alignment方式(右侧或左侧或中心)。 有没有办法可以改变一个cellStyle的路线? 任何帮助表示赞赏

Apache POI – 在Excel中迭代列(XSSF)

我想让我的程序从顶部到底部阅读一个excel列,而不是从左到右,就像现在正在做的那样。 不幸的是,在文档中找不到任何让我这样做的东西。 我有一个excel文件,看起来像这样: col1 col2 col3 col4 —————————– row1 | 2,3,1 _ 1 w row2 | 3,2,7 _ 2 x row3 | _ _ 3 y row4 | 4,9 _ 4 z 我在第2列写了一些值(使用XLWT),如下所示: col1 col2 col3 col4 —————————– row1 | 2,3,1 x,y,w 1 w row2 | 3,2,7 y,x 2 x row3 | _ _ 3 […]

打印(获取打印输出)arrays列表中的元素

场景: 我正在做一个小的应用程序来提取大量的Excel工作表数据,并对其进行sorting然后保存,然后如果需要打印它。 我正在使用JavaFX for UI and Apache POI来读取和写入Excel数据。 我把我提取的数据放到一个ArrayList中,我可以做保存部分。 首先,我想把Arraylist元素放到TextArea中,然后打印出来。 但是将每个元素附加到TextArea需要很多时间(考虑大约100 000个单元格数据)。 SI认为直接从ArrayList打印。 问题:是否可以从数组列表中进行打印? 以下任何一种select都是可能的? 这个代码可以像TextArea一样从UI中打印出来。 if (job != null && job.showPrintDialog(ProjectNavigation.scene.getWindow())){ boolean success = job.printPage(node); if (success) { job.endJob(); } } 但问题是我没有在我的用户界面的数据。 选项我想: 创build一个临时文件并打印它删除该文件 将数组列表转换成东西,然后打印出来。 任何图书馆这样做? 任何build议将有所帮助。 谢谢。 PS: 正如Khaled Khnifer在他的回答中提到的,我使用ListView来显示UI中可以打印数据的项目。