Excel рдореЗрдВ рдбреЗрдЯрд╛ рдЕрдирд▓реЛрдб рдХрд░реЗрдВред рд╕рднреНрдп рдмрдирд╛рдирд╛

рдЖрдИрдЯреА рдЙрджреНрдпреЛрдЧ рдореЗрдВ рдРрд╕реЗ рдХрд╛рд░реНрдп рд╣реИрдВ рдЬреЛ рдмрдбрд╝реЗ рдбреЗрдЯрд╛ , рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ , рдмреНрд▓реЙрдХрдЪреЗрди рдФрд░ рдЕрдиреНрдп рдлреИрд╢рди рд░реБрдЭрд╛рдиреЛрдВ рдореЗрдВ рд╕рдлрд▓рддрд╛рдУрдВ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣реИрдВ, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрджрд╕реВрд░рдд рджрд┐рдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рджрд╢рдХреЛрдВ рддрдХ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдПрдХ рдкреВрд░реА рд╕реЗрдирд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд░рд╣ рдЧрдП рд╣реИрдВред рдпрд╣ рдПрдХреНрд╕реЗрд▓-рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд╢реНрд╡ рдХрд╛рд░реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдкреБрд░рд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрдЧрд╛, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЙрди рд╕рднреА рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдХрднреА рд╡реНрдпрд╛рдкрд╛рд░ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рд▓рд┐рдЦреЗ рд╣реИрдВред





рдПрдХреНрд╕реЗрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдХреНрдпрд╛ рд╕рдВрднрд╛рд╡рдирд╛рдПрдБ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВ?

  1. VBA рдореИрдХреНрд░реЛрдЬрд╝ред рдЖрдЬрдХрд▓, рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рдореИрдХреНрд░реЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред
  2. рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рд╣рд░реА рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдПрдХреНрд╕реЗрд▓ рд╕реНрд╡рдЪрд╛рд▓рдиред рдПрдХреНрд╕реЗрд▓ рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрд╕реА рдорд╢реАрди рдкрд░ рдПрдХреНрд╕реЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдРрд╕реЗ рд╕рдордп рдореЗрдВ рдЬрдм рдХреНрд▓рд╛рдЗрдВрдЯ рдореЛрдЯреЗ рдереЗ рдФрд░ рдбреЗрд╕реНрдХрдЯреЙрдк рд╡рд┐рдВрдбреЛрдЬ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдереЗ, рдпрд╣ рд╡рд┐рдзрд┐ рдЙрдкрдпреБрдХреНрдд рдереА (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЧрддрд┐ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдореЗрдВ рднрд┐рдиреНрди рдирд╣реАрдВ рдереА), рд╡рд░реНрддрдорд╛рди рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛рдУрдВ рдореЗрдВ рдпрд╣ рд╢рд╛рдпрдж рд╣реА рдПрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдорд╛рдорд▓рд╛ рд╣реИред
  3. XML- рдПрдХреНрд╕реЗрд▓ рдлрд╛рдЗрд▓ рдХреЛ рд╕реАрдзреЗ рдЬрдирд░реЗрдЯ рдХрд░реЗрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, Excel рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП XML рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ XML рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдХрд┐рд╕реА рднреА рдорд╛рдзреНрдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди / рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди .xls рдХреЗ рд╕рд╛рде рд╕рд╣реЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрдбрд╝рд╛рдИ рд╕реЗ рдмреЛрд▓рддреЗ рд╣реБрдП, рдпрд╣ рдПрдХ xls рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИ, рдПрдХреНрд╕реЗрд▓ рдЗрд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЦреЛрд▓рддрд╛ рд╣реИред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛рдлреА рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ, рд▓реЗрдХрд┐рди рдиреБрдХрд╕рд╛рди рдореЗрдВ рдпрд╣ рддрдереНрдп рд╢рд╛рдорд┐рд▓ рд╣реИ рдХрд┐ рдПрдХреНрд╕рдПрдордПрд▓-рдПрдХреНрд╕реЗрд▓ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╕реАрдзреЗ рд╕рдВрдкрд╛рджрди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдХреЛрдИ рднреА рд╕рдорд╛рдзрд╛рди рдПрдХ рдмрд╛рд░ "рд╣реИрдХ" рд╕рд╛рдорд╛рдиреНрдпрддрд╛ рд╕реЗ рд░рд╣рд┐рдд рд╣реИред
  4. рдЕрдВрдд рдореЗрдВ, рдУрдкрди рд╕реЛрд░реНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХреНрд╕реЗрд▓ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЬреЗрдирд░реЗрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ Apache POI рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬреНрдЮрд╛рдд рд╣реИред Apache POI рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдмрд╛рдЗрдирд░реА рдПрдордПрд╕ рдСрдлрд┐рд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕реНрд╡рд░реВрдкреЛрдВ рдкрд░ рдПрдХ рдЯрд╛рдЗрдЯреИрдирд┐рдХ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред рдЗрд╕ рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдХрд╛ рдкрд░рд┐рдгрд╛рдо, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдордПрд╕ рдСрдлрд┐рд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рд╕рдВрд░рдХреНрд╖рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрдкрди рдСрдлрд┐рд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдЙрди рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдЕрдВрддрд┐рдо рд╣реИ рдЬреЛ рдЕрдм рдПрдордПрд╕ рдСрдлрд┐рд╕-рд╕рдВрдЧрдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╕рдВрдж рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдПрдХ рдУрд░, рдЗрд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдХрд┐рд╕реА рднреА рдорд╛рд▓рд┐рдХрд╛рдирд╛ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рджреВрд╕рд░реА рдУрд░, рдпрд╣ рдПрдХ рд╕рдореГрджреНрдз рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдПрдордПрд╕ рдСрдлрд┐рд╕ рдХреА рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдЕрдкрд╛рдЪреЗ POI рдХреЗ рдкреНрд░рддреНрдпрдХреНрд╖ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЗрд╕рдХреА рдХрдорд┐рдпрд╛рдВ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдПрдХ рдЬрд╛рд╡рд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЬреЗрд╡реАрдПрдо рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдк рд╢рд╛рдпрдж рд╣реА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рджреВрд╕рд░реЗ, рдпрд╣ рдПрдХ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬреЛ "рд╕реЗрд▓", "рдХреЙрд▓рдо", "рдлрд╝реЙрдиреНрдЯ" рдЬреИрд╕реА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ "рдлреЗрд╕-рдСрди" рд╣рд╛рд░реНрдб-рдЯреВ-рд░реАрдб рдХреЛрдб рдХреЗ рдПрдХ рдмрд╣реБрдд рд╣реА рд╢рд╛рдирджрд╛рд░ "рдиреВрдбрд▓" рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, рдЬрд╣рд╛рдВ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдФрд░ рдкреНрд░рд╕реНрддреБрддрд┐ рдореЗрдВ рдХреЛрдИ рдЕрд▓рдЧрд╛рд╡ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдФрд░, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рджрд░реНрдж рдФрд░ рд╢рд░реНрдоред рдФрд░ рд╕рдмрд╕реЗ рдЕрдиреБрднрд╡рд╣реАрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдХрд╛рд░реНрдп рд╕реМрдВрдкрдиреЗ рдХрд╛ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЕрд╡рд╕рд░ - рдЙрд╕реЗ рд▓реЗрдиреЗ рджреЗрдВред

рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред Apache POI рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдП рдЧрдП LGPL рдХреЗ рддрд╣рдд Xylophone рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдПрдХ рдРрд╕реЗ рд╡рд┐рдЪрд╛рд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрдиреБрдорд╛рдирд┐рдд 15 рд╕рд╛рд▓ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рд╣реИред рдЬрд┐рди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдореИрдВрдиреЗ рднрд╛рдЧ рд▓рд┐рдпрд╛ рдерд╛, рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдФрд░ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдФрд░, рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЗрд╕рдХреА рдорджрдж рд╕реЗ рдмрдирд╛рдП рдЧрдП рд░реВрдкреЛрдВ рдХреА рд╡рд┐рд╡рд┐рдзрддрд╛ рдХреЗ рдХрд╛рд░рдг, рд╕рдВрднрд╡рддрдГ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рдЬрд╛рд░реЛрдВ рд╣реИрдВред рдпрд╣ рдПрдХ рдЬрд╛рд╡рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ рдЬреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИ (рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЬреЗрд╡реАрдПрдо рднрд╛рд╖рд╛ рдореЗрдВ рдХреЛрдб рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рдорд╛рд╡реЗрди рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ )ред

Xylophone рдЕрдкрдиреА рдкреНрд░рд╕реНрддреБрддрд┐ рд╕реЗ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЕрдкрд▓реЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдЖрдкрдХреЛ рдПрдХреНрд╕рдПрдордПрд▓ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдХреЛрд╢рд┐рдХрд╛рдУрдВ, рдлреЛрдВрдЯ рдФрд░ рд╡рд┐рднрд╛рдЬрди рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛), рдФрд░ рдЬрд╝рд╛рдЗрд▓реЛрдлреЛрди, рдПрдХ рдПрдХреНрд╕реЗрд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ рдФрд░ рдПрдХ рд╡рд┐рд╡рд░рдгрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ XML рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдХреНрд░реЙрд▓ рдСрд░реНрдбрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ, рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдЖрд░реЗрдЦ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:


рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЯреЗрдореНрдкрд▓реЗрдЯ (xls / xlsx рдЯреЗрдореНрдкрд▓реЗрдЯ) рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:


рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдРрд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рдЦрд░реАрдж рдЧреНрд░рд╛рд╣рдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред рд╢рд╛рдорд┐рд▓ рдЧреНрд░рд╛рд╣рдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд╢ рд╣реИ: "рд╕рд▓рд╛рд╣рдХрд╛рд░" рд╕реЗ рд╕рд╣реА рд░реВрдк рдЪреБрдирдиреЗ рдпрд╛ рдЦрд░реЛрдВрдЪ рд╕реЗ рдПрдХ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рднрд╛рдЬрди рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдлрд╝реЙрдиреНрдЯ рдЖрдХрд╛рд░ рдФрд░ рдЪреМрдбрд╝рд╛рдИ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рд░рд┐рдкреЛрд░реНрдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рдкрд░ рднреА рдЗрд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред

рдЬрдм "рдбрд┐рдЬрд╝рд╛рдЗрди" рдХрд╛рд░реНрдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдбреЗрд╡рд▓рдкрд░ рд░рд╣рддрд╛ рд╣реИ

  1. XML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рдПрдВред
  2. рдПрдХ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдмрдирд╛рдПрдБ рдЬреЛ рдПрдХреНрд╕рдПрдордПрд▓ рдлрд╝рд╛рдЗрд▓ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдЯреНрд░реЗрд╕ рдХрд░рдиреЗ рдФрд░ рдкрд░рд┐рдгрд╛рдореА рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ
  3. XPath рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ XML рдлрд╝рд╛рдЗрд▓ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗрд▓ рдмрд╛рдБрдзреЗрдВ ред

XML рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рд╕реНрдкрд╖реНрдЯ рд╣реИ: рдлрд╝реЙрд░реНрдо рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдХреЗ рдЙрдЪрд┐рдд XML рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рд╡рд┐рд╡рд░рдгрдХ рдХреНрдпрд╛ рд╣реИ?

рдпрджрд┐ рд╣рдо рдЬреЛ рдлреЙрд░реНрдо рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдЙрд╕рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рддрддреНрд╡ рдирд╣реАрдВ рд╣реИрдВ (рдЬреИрд╕реЗ рдХрд┐ рдЗрдирд╡реЙрдЗрд╕ рд▓рд╛рдЗрдиреЗрдВ, рдЬреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪрд╛рд▓рд╛рдиреЛрдВ рдореЗрдВ рднрд┐рдиреНрди рд╣реИрдВ), рддреЛ рд╡рд┐рд╡рд░рдгрдХ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

<element name="root"> <output range="A1:Z100"/> </element> 

рдпрд╣рд╛рдВ рд░реВрдЯ рд╣рдорд╛рд░реА XML рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдореВрд▓ рддрддреНрд╡ рдХрд╛ рдирд╛рдо рд╣реИ, рдФрд░ рд░реЗрдВрдЬ A1: Z100 рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рдЖрдпрддрд╛рдХрд╛рд░ рд╢реНрд░реЗрдгреА рд╣реИ рдЬрд┐рд╕реЗ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдлрд╝реАрд▓реНрдб рдЬрд┐рдирдХреЗ рдорд╛рдиреЛрдВ рдХреЛ XML рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдирдореЗрдВ рдкреНрд░рд╛рд░реВрдк ~{XPath-} (рдЯрд┐рд▓реНрдб, рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реИрдХреЗрдЯ, рд╡рд░реНрддрдорд╛рди XML рддрддреНрд╡ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ XPath рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐, рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реИрдХреЗрдЯ рдХреЛ рдмрдВрдж рдХрд░рдирд╛) рд╣реЛрддрд╛ рд╣реИред

рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЙрдиреНрд╣реЗрдВ XML рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЗрд╕реЗ рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рджреЛрдиреЛрдВ рдПрдХ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рджрд┐рд╢рд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ (рдЬрдм рд╣рдо рдЪрд╛рд▓рд╛рди рд▓рд╛рдЗрдиреЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП), рдФрд░ рдХреНрд╖реИрддрд┐рдЬ (рдЬрдм рд╣рдо рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдХреЙрд▓рдо рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ)ред рдЙрд╕реА рд╕рдордп, рд╣рдо рд░рд┐рдкреЛрд░реНрдЯ рддрддреНрд╡реЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рддреЗ рд╣реБрдП рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЧрд╣рд░реЗ рдШреЛрдВрд╕рд▓реЗ рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП XML рддрддреНрд╡реЛрдВ рдХреЗ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:


рд▓рд╛рд▓ рд╡рд░реНрдЧ рдЙрди рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЕрдЧрд▓реЗ рдЖрдпрддрд╛рдХрд╛рд░ рдЯреБрдХрдбрд╝реЗ рдХреЗ рдКрдкрд░реА рдмрд╛рдПрдВ рдХреЛрдиреЗ рд╣реЛрдВрдЧреЗ рдЬреЛ рд░рд┐рдкреЛрд░реНрдЯ рдЬрдирд░реЗрдЯрд░ рдбреЙрдХрд┐рдВрдЧ рд╣реИред

рддрддреНрд╡реЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИ: рдПрдХреНрд╕реЗрд▓ рд╡рд░реНрдХрдмреБрдХ рдореЗрдВ рд╢реАрдЯред рдРрд╕реА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИред

рдереЛрдбрд╝рд╛ рдФрд░ рдЬрдЯрд┐рд▓ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рддрд░рд╣ рдПрдХ рд╕рд╛рд░рд╛рдВрд╢ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:


рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЙрддрд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрд╖реЛрдВ рдХреА рд╕реАрдорд╛ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рджреЗрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рджреЛрдиреЛрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдРрд╕реА рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХрд╛ XML рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

testdata.xml
 <?xml version="1.0" encoding="UTF-8"?> <report> <column year="2016"/> <column year="2017"/> <column year="2018"/> <item name=" 1"> <year amount="365"/> <year amount="286"/> <year amount="207"/> </item> <item name=" 2"> <year amount="95"/> <year amount="606"/> <year amount="840"/> </item> <item name=" 3"> <year amount="710"/> <year amount="437"/> <year amount="100"/> </item> <totals> <year amount="1170"/> <year amount="1329"/> <year amount="1147"/> </totals> </report> 


рд╣рдо рдЖрдкрдХреА рдкрд╕рдВрдж рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЯреИрдЧ рдХреЗ рдирд╛рдо рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ, рд╕рдВрд░рдЪрдирд╛ рднреА рдордирдорд╛рдиреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рдХреА рдЖрд╕рд╛рдиреА рдХреЗ рд╕рд╛рдеред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рд╢реАрдЯ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ XPath рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ (рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдЬрдм рд╡реЗ @ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ)ред

рдЗрд╕ рддрд░рд╣ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛ (рдПрдХреНрд╕рдкреАрде рдПрдХреНрд╕рдкреНрд░реЗрд╢рдВрд╕ рдХреА рддреБрд▓рдирд╛ рд╕рдВрдмрдВрдзрд┐рдд рдЯреИрдЧ рдХреЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде):


рдЕрдм рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣рд┐рд╕реНрд╕рд╛ рдЖрддрд╛ рд╣реИ: рдПрдХ рд╣реИрдВрдбрд▓ рдмрдирд╛рдирд╛ред рдЪреВрдВрдХрд┐ рдпрд╣ рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЗрдХрдЯреНрдареА рд░рд┐рдкреЛрд░реНрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд┐рд╡рд░рдгрдХ рдЬрдЯрд┐рд▓ рд╣реИ, рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ (рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рдХреЗрд╡рд▓ "рд╣реЗрдбрд░" рд╣реИ, рдЗрд╕рдХреА рд▓рд╛рдЗрдиреЗрдВ рдФрд░ "рдкрд╛рдж") рд╕рдм рдХреБрдЫ рдЖрдорддреМрд░ рдкрд░ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдпрд╣рд╛рдБ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдгрдХрд░реНрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

descriptor.xml
 <?xml version="1.0" encoding="UTF-8"?> <element name="report"> <!--   --> <output worksheet="" sourcesheet="1"/> <!--        --> <iteration mode="horizontal"> <element name="(before)"> <!--        --> <output range="A1"/> </element> <element name="column"> <output range="B1"/> </element> </iteration> <!--  :     ,   --> <iteration mode="vertical"> <element name="item"> <!--    -   --> <iteration mode="horizontal"> <element name="(before)"> <!--   --> <output range="A2"/> </element> <!--         --> <element name="year"> <output range="B2"/> </element> </iteration> </element> </iteration> <iteration> <element name="totals"> <iteration mode="horizontal"> <element name="(before)"> <!--   --> <output range="A3"/> </element> <!--         --> <element name="year"> <output range="B3"/> </element> </iteration> </element> </iteration> </element> 


рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рддрддреНрд╡ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдПрдХ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЗ рдореВрд▓ рддрддреНрд╡реЛрдВ рдХрд╛ рдЕрд░реНрде рдирд┐рдореНрди рд╣реИ:

  • рддрддреНрд╡ - рдПрдХ XML рдлрд╝рд╛рдЗрд▓ рдХреЗ рдПрдХ рддрддреНрд╡ рдХреЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордгред рдпрд╣ рдпрд╛ рддреЛ рд╡рд┐рд╡рд░рдгрдХ рдХрд╛ рдореВрд▓ рддрддреНрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ iteration рдЕрдВрджрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред name рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдлрд┐рд▓реНрдЯрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
    • name="foo" - рдЯреИрдЧ рдирд╛рдо рдлреВ рдХреЗ рд╕рд╛рде рддрддреНрд╡
    • name="*" - рд╕рднреА рддрддреНрд╡
    • name="tagname[@attribute='value']" - рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╛рдо рдФрд░ рдЧреБрдг рдорд╛рди рд╡рд╛рд▓реЗ рддрддреНрд╡
    • name="(before)" , name="(after)" - "рдЖрднрд╛рд╕реА" рддрддреНрд╡ рдЬреЛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХреЛ рдмрдВрдж рдХрд░рддреЗ рд╣реИрдВред
  • рдкреБрдирд░рд╛рд╡реГрддрд┐ - рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЛрдб рдореЗрдВ рд╕рдВрдХреНрд░рдордгред рдпрд╣ рдХреЗрд╡рд▓ element рдЕрдВрджрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рднрд┐рдиреНрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛ред
    • mode="horizontal" - mode="horizontal" рдЖрдЙрдЯрдкреБрдЯ рдореЛрдб (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд▓рдВрдмрд╡рдд)
    • index=0 - рдкрд╣рд▓реЗ рддрддреНрд╡ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░реЗрдВ
  • рдЖрдЙрдЯрдкреБрдЯ - рдЖрдЙрдЯрдкреБрдЯ рдореЛрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВред рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:
    • sourcesheet - рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдмреБрдХ рд╢реАрдЯ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рд░реЗрдВрдЬ рд▓реА рдЬрд╛рддреА рд╣реИред рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╡рд░реНрддрдорд╛рди (рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛) рд╢реАрдЯ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
    • range - рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рд╢реНрд░реЗрдгреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "A1: M10", рдпрд╛ "5: 6", рдпрд╛ "C: C"ред (рдХреНрд╖реИрддрд┐рдЬ рдЖрдЙрдЯрдкреБрдЯ рдореЛрдб рдореЗрдВ рдЯрд╛рдЗрдк "5: 6" рдкреНрд░рдХрд╛рд░ рдХреА рдкрдВрдХреНрддрд┐ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдЖрдЙрдЯрдкреБрдЯ рдореЛрдб рдореЗрдВ "C: C" рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреЙрд▓рдо рд░реЗрдВрдЬ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреА)ред
    • worksheet - рдпрджрд┐ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдирдИ рд╢реАрдЯ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдкреЛрдЬреАрд╢рди рдХреЛ рдЗрд╕ рд╢реАрдЯ рдХреЗ рд╕реЗрд▓ A1 рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рд╕реНрдерд┐рд░ рдпрд╛ XPath рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдмрд░рд╛рдмрд░ рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдореВрд▓реНрдп, рдирдИ рд╢реАрдЯ рдХреЗ рдирд╛рдо рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдореЗрдВ рдХрдИ рдФрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдкреНрд░рд▓реЗрдЦрди рджреЗрдЦреЗрдВред

рдЦреИрд░, рдЕрдм рдЬрд╝рд╛рдЗрд▓реЛрдлреЛрди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред
Bintray рдпрд╛ Maven Central (NB: рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд╕рдордп, рдФрд░ рдЕрдзрд┐рдХ рд╣рд╛рд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрднрд╡ рд╣реИрдВ) рд╕реЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд▓реЗрдВред / рдмрд┐рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ, рдЬрдм рдЖрдк рдЗрд╕реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреЗрдд рджреЗрдВрдЧреЗред рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рднреА рдЕрд╡рдпрд╡реЛрдВ рдореЗрдВ рдЬрд╝рд╛рдЗрд▓реЛрдлреЛрди рдХреЛ "рдлреАрдб" рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

 xylophone -data testdata.xml -template template.xlsx -descr descriptor.xml -out report.xlsx 

Report.xlsx рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдареАрдХ рд╡рд╣реА рдорд┐рд▓реЗрдЧрд╛ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП:


рдХреНрдпреЛрдВрдХрд┐ ru.curs: xylophone рд▓рд╛рдЗрдмреНрд░реЗрд░реА LGPL рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рдорд╛рд╡реЗрди рд╕реЗрдВрдЯреНрд░рд▓ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ , рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рднреА JVM рднрд╛рд╖рд╛ рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдХреЙрдореНрдкреИрдХреНрдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдЧреНрд░реВрд╡реА рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рд╣реИ, рдХреЛрдб рдХреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ:

 @Grab('ru.curs:xylophone:6.1.3') import ru.curs.xylophone.XML2Spreadsheet baseDir = '.' new File(baseDir, 'testdata.xml').withInputStream { input -> new File(baseDir, 'report.xlsx').withOutputStream { output -> XML2Spreadsheet.process(input, new File(baseDir, 'descriptor.xml'), new File(baseDir, 'template.xlsx'), false, output) } } println 'Done.' 

XML2Spreadsheet class рдореЗрдВ рд╕реНрдереИрддрд┐рдХ process рд╡рд┐рдзрд┐ рдХреЗ рдХрдИ рдЕрддрд┐рднрд╛рд░рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА рд░рд┐рдкреЛрд░реНрдЯ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдорд╛рди "рдЕрд╡рдпрд╡реЛрдВ" рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдмрд▓рддреЗ рд╣реИрдВред

рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рдХрд▓реНрдк рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд╡рд╣ XML рдбреЗрдЯрд╛ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рдЪрд░рдг рдореЗрдВ DOM рдФрд░ SAX рдкрд╛рд░реНрд╕рд░ рдХреЗ рдмреАрдЪ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, DOM рдкрд╛рд░реНрд╕рд░ рд╕рдВрдкреВрд░реНрдг рдлрд╝рд╛рдЗрд▓ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдЕрдкрдиреА рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ (рдПрдХ рд╣реА рддрддреНрд╡ рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рд╕рд╣рд┐рдд)ред SAX рдкрд╛рд░реНрд╕рд░ рдкреВрд░реЗ рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рдХрднреА рдирд╣реАрдВ рдбрд╛рд▓рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдЗрд╕реЗ рддрддреНрд╡реЛрдВ рдХреА "рд╕реНрдЯреНрд░реАрдо" рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рддрддреНрд╡ рдкрд░ рд▓реМрдЯрдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред

Xylophone рдореЗрдВ SAX рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ ( -sax рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди -sax рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ useSax рд╡рд┐рдзрд┐ рдХреЛ XML2Spreadsheet.process рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЬрдм рдЖрдк рдмрд╣реБрдд рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рдХрд╛рдлреА рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдПрд╕рдПрдПрдХреНрд╕ рдкрд╛рд░реНрд╕рд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЧрддрд┐ рдФрд░ рд▓рд╛рднрдкреНрд░рджрддрд╛ рдХреЗ рдХрд╛рд░рдг, рдлрд╝рд╛рдЗрд▓ рдкреАрдврд╝реА рдХреА рдЧрддрд┐ рдХрдИ рдмрд╛рд░ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рдпрд╣ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ (рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд) рдкрд░ рдХреБрдЫ рдЫреЛрдЯреЗ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреА рдХреАрдордд рдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдЗрди рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЬрд╣рд╛рдВ рднреА рд╕рдВрднрд╡ рд╣реЛ рдПрд╕рдПрдПрдХреНрд╕ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛ред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЬрд╝рд╛рдЗрд▓реЛрдлреЛрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд▓ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдкрд╕рдВрдж рдЖрдпрд╛ рдФрд░ рдмрд╣реБрдд рд╕рдордп рдФрд░ рдирд╕реЛрдВ рдХреЛ рдмрдЪрд╛рдПрдЧрд╛ - рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рд╣рдореЗрдВ рдмрдЪрд╛рдпрд╛ред

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдлрд┐рд░ рд╕реЗ рд▓рд┐рдВрдХ:

Source: https://habr.com/ru/post/hi422059/


All Articles