poi-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rdhanara <rdhan...@ford.com>
Subject Re: Loading Large XLSM file using POI without Memory issue .
Date Wed, 17 Apr 2019 07:55:22 GMT
Finally found a way to parse xml and delete the reference of the sheet which
i planned to delete from my excel workbook

*To delete the unwanted sheet data from workbook :*

	  public static void delete_Merged_report_sheet(String destDir) {
		  String merged_rprt_sheet_Path = destDir+"\\xl\\worksheets\\sheet3.xml";
		  File merged_sheet = new File(merged_rprt_sheet_Path);
		  merged_sheet.delete();
	  }
*******************************
*To remove the deleted sheet references from the worksheet :*
	  public static void modifyXml(String destDir)  {
		  try {
		  String filepath = destDir+"\\xl\\workbook.XML";
			DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
			DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
			Document doc = docBuilder.parse(filepath);
			
			Node sheets = doc.getElementsByTagName("sheets").item(0);
			NodeList list = sheets.getChildNodes();
			for (int i = 0; i < list.getLength(); i++) {
			    Node node = list.item(i);
			    NamedNodeMap attributes =   node.getAttributes();
			    attributes.getNamedItem("r:id").getTextContent();
			    if ("rId3".equals(attributes.getNamedItem("r:id").getTextContent()))
{
			    	sheets.removeChild(node);
				   }
			}
			// write the content into xml file
			TransformerFactory transformerFactory = TransformerFactory.newInstance();
			Transformer transformer = transformerFactory.newTransformer();
			DOMSource source = new DOMSource(doc);
			StreamResult result = new StreamResult(new File(filepath));
			transformer.transform(source, result);
		  } catch (ParserConfigurationException pce) {
				pce.printStackTrace();
			   } catch (TransformerException tfe) {
				tfe.printStackTrace();
			   } catch (IOException ioe) {
				ioe.printStackTrace();
			   } catch (SAXException sae) {
				sae.printStackTrace();
			   }
		}
	  

*Thanks everyone for helping me in identifying the solution without memory
issue .. *




--
Sent from: http://apache-poi.1045710.n5.nabble.com/POI-User-f2280730.html

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@poi.apache.org
For additional commands, e-mail: user-help@poi.apache.org


Mime
View raw message