我需要打开一个现有的*。xlsx Excel文件,进行一些修改,然后将其另存为新文件(或将其流式传输到前端而不保存)。原始文件必须保持不变。
出于内存原因,我避免使用FileInputStream(如下所述:http://poi.apache.org/spreadsheet/quick-guide.html#FileInputStream )
// XSSFWorkbook, File
OPCPackage pkg = OPCPackage.open(new File("file.xlsx"));
XSSFWorkbook wb = new XSSFWorkbook(pkg);
....
pkg.close();
这是我最后的解决方案,我最终使用了它。这样做的好处是,任何地方都不会保存任何文件。我还添加了以下行:
XSSFFormulaEvaluator.evaluateAllFormulaCells(workbook);
这将确保更新所有公式。再一次,我完成了所有的尝试/捕获/最终。
OPCPackage pkg = OPCPackage.open("existingFile.xlsx");
XSSFWorkbook wb = (XSSFWorkbook) WorkbookFactory.create(pkg);
// make your modifications...
XSSFSheet sheet = wb.getSheetAt(0);
//
XSSFFormulaEvaluator.evaluateAllFormulaCells(workbook);
ByteArrayOutputStream os = new ByteArrayOutputStream();
wb.write(os);
pkg.close();
os.close();
Faces.sendFile(os.toByteArray(), "file.xlsx", true);
为了使其正常工作,必须为输入和输出使用不同的文件路径。
最后一行使用Omnifaces将文件发送到浏览器。
下面是如何使用OPCPackage读取(尝试/捕获/最后省略的可读性)时可以做到这一点:
OPCPackage pkg = OPCPackage.open("existingFile.xlsx");
XSSFWorkbook wb = (XSSFWorkbook) WorkbookFactory.create(pkg);
make your modifications... XSSFSheet sheet = wb.getSheetAt(0); ...
fos = new FileOutputStream("outputFileName.xlsx");
wb.write(fos);
pkg.close();
fos.close();
Faces.sendFile(new File(outputFileName)
为了使其正常工作,必须为输入和输出使用不同的文件路径。
最后一行使用Omnifaces将文件发送到浏览器。
有关更多信息,请参见此问题:在此处输入链接说明
JFileChooser fileOpen = new JFileChooser();
fileOpen.showOpenDialog(theFrame); // gives you an open file dialog
readFile(fileOpen.getSelectedFile()); // write you reading content in reaFile method
JFileChooser fileSave = new JFileChooser();
fileSave.showSaveDialog(Frame); //gives you a dialog box for saving
saveFile(fileSave.getSelectedFile()); // write your saving content in saveFile method
我想下载一个文件,同时保留文件的文件名。 我有: 我可以下载文件,但我下载的文件名总是“downloadFile”。pdf或下载文件。巴布亚新几内亚'。 如何保留原始文件名?谢谢
我正试图用reactJS下载一个xlsx文件,但当我在下载后试图打开我的文件时,我收到了这条消息: “Excel无法打开文件‘file.xlsx’,因为文件格式或文件扩展名无效。请验证文件是否已损坏,以及文件扩展名是否与文件格式匹配。” 这是前端代码: 为什么我得到这个错误?请谁来帮帮我,我被困在这个3周 [编辑1] 我尝试下载的文件是在后端构建的,基本上我获取数据库上的值并使用Apache po
问题内容: 我正在尝试使用Python 2.7.1(在Windows上,fyi)从zip文件中提取文件,而我的每一次尝试都显示了具有Modified Date =提取时间的提取文件(不正确)。 我也尝试使用.extractall方法,结果相同。 谁能告诉我我在做什么错? 我想认为这是可能的,而不必重新校正每个[Windows文件的文件创建日期?](http://codingdict.com/que
问题内容: 我想我的调用或当我指定一个文件被修改浏览器。修改文件后,我该如何“观看”该文件以执行某些操作? 以编程方式看来,这些步骤是..基本上每秒设置一个永无休止的间隔,并缓存初始修改日期,然后每当更改一次调用X时便比较该日期。 问题答案: 如前所述,您可以使用pyinotify: 例如: 这比轮询更有效。内核会告诉您何时进行操作,而无需您不断询问。
我试图在一个特定文件夹中保存多个图像第一个图像保存正确,但下一个图像只是替换第一个图像。如何保存多个图像?如何动态命名并使用相同的名称保存图像,但使用不同的扩展名,如image、image1、image2。。。下面是我的代码
我有一个这样的bat文件: 这会将IP信息打印到屏幕上,但在用户可以读取该信息之前,CMD会自动关闭。 我相信CMD假设脚本已经完成,所以它关闭了。 脚本完成后如何保持CMD打开?