If you get more into diffing these files, convert to canonical XML with xmllint and then use a regular line-based text diff tool[1]
$ xmllint --c14n one.xml > 1.xml $ xmllint --c14n two.xml > 2.xml $ diff -u 1.xml 2.xml [1] http://superuser.com/a/81036/303069 On Thu, Jan 14, 2016 at 10:30 PM, Javen O'Neal <[email protected]> wrote: > Apparently changing chart types is a lot more complicated than > replacing <c:lineChart> with <c:barChart> and <c:grouping > val="standard"/> with <c:grouping val="stacked"/>. > Excel might be adding, removing, and modifying more tags than > absolutely necessary when changing the chart types (for example, if > <c:invertIfNegative val="0"/> is not a required tag, it wouldn't need > to be added). The schema might tell us if some tags are optional, and > therefore allow us to ignore most of this diff. > > OpenOffice, LibreOffice, and other applications might not generate > quite as large a diff as Excel did here. Don't invest too much time > reading the diff below without seeing if a different application can > give us a smaller set of changes to look for. If other applications > give the same length diff, then having POI support changing chart > types might not be a one-weekend project :) > > line.xml http://pastebin.com/B8bDCByq > stackedbar.xml http://pastebin.com/ykkGMANE > short diff http://pastebin.com/dxh7DPwR > full diff http://pastebin.com/diff/ykkGMANE > > Formatted using http://www.xmlformatter.net/ > > On Thu, Jan 14, 2016 at 7:50 PM, Javen O'Neal <[email protected]> wrote: >> Find-replace all ">" with ">\n", then run the diff. Alternatively, use a >> text editor with HTML/XML pretty printing. >> >> On Jan 14, 2016 19:40, "Ken Hausam" <[email protected]> wrote: >>> >>> Thanks Nick. I'm a novice here. Didn't even know that .xlsx were zips of >>> XML files. >>> >>> After changing chart type, only one file changed: the chart1.xml file >>> location in the xl/charts/ directory. I've attached the before (line.xml) >>> and after (stackedbar.xml) files. The diff isn't enormous, but it doesn't >>> seem trivial either. I couldn't list the actual diff since the XML is all on >>> one line which makes the diff hard to view as a text diff. >>> >>> I already tried a very simple change: changing <c:lineChart> to >>> <c:barChart> and changing <c:grouping val="standard"/> to <c:grouping >>> val="stacked"/> . No luck. Excel complained with "file format is not valid" >>> when I tried to open it. >>> >>> Don't know if it makes a difference, but I was using Mac Excel 2011 to >>> change the chart type. >>> >>> Thanks, >>> Ken >>> >>> >>> >>> >>> >>> >>> >>> On Wednesday, January 13, 2016 2:47 AM, Nick Burch <[email protected]> >>> wrote: >>> >>> >>> On Sat, 9 Jan 2016, Ken Hausam wrote: >>> >>> > I am using XSSFChart and associated classes to create a line chart using >>> > Apache POI. Works great! Thanks. My question is, is there an easy way to >>> > change the chart type programmatically from a line chart to a stacked >>> > bar chart? I looked quickly at the CTChart class and associated CT >>> > classes and noticed that the various chart types had their own class. >>> > This makes me think that it's not as easy as just flipping a chart type >>> > attribute somewhere, but figured it couldn't hurt to ask. >>> >>> >>> I haven't looked at the chart stuff recently, so I can't answer off the >>> top of my head. What I'd suggest you do is firstly create a simple file in >>> Excel, with one sheet, with a few data points, and one style of chart. >>> Save that. Next, change the type, and save-as that. Next, unzip both .xlsx >>> files (rename to .zip and unpack). Now, compare the xml, especially for >>> sheets and charts, and see what differs. Post a summary of that, and we'll >>> help if we can! >>> >>> Nick >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >>> >>> >>> >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
