рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!рдореИрдВ рдПрдХ рд╕рд░рд▓ рдЬрд╛рд╡рд╛ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдФрд░
* .xslx рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдПрдХ
* .docx рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ
рдорд░реНрдЬрдлреАрд▓реНрдб рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рднрд░рддрд╛ рд╣реИ ред рдЗрд╕рдореЗрдВ Apache POI, docx4j, рдФрд░ springframework.jdbc рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдПрдХ рд╕рд╛рде рд▓рд╛рддрд╛ рд╣реИ рдЬреЛ рдЕрдХреНрд╕рд░ рд╕реНрд╡рдЪрд╛рд▓рди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╡рд╣ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред
рдРрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВрдпрд╣ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
- Xslx рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝реЗрдВ
- рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, Oracle рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)
- рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдбреЙрдХреНрд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЬрдирд░реЗрдЯ рдХрд░реЗрдВ, рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдорд░реНрдЬ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдорд╛рди рдЬреЛрдбрд╝реЗрдВ
рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рддрдм рдЙрддреНрдкрдиреНрди рд╣реБрдИ рдЬрдм рдЗрд╕реЗ рдЕрдкрдиреЗ рдореБрджреНрд░рдг рдФрд░ рдореЗрд▓ рдХреЗ рд▓рд┐рдП рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдЕрдкрдиреЗ рдЕрдиреНрдп рдЫреЛрдЯреЗ рд╡рд┐рдХрд╛рд╕реЛрдВ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред
рдЕрдкрд╛рдЪреЗ POI рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд░рд╣рд╛ рдерд╛ред рд▓реЗрдХрд┐рди docx4j рдиреЗ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдЖрд╡реЗрджрди рдХрд┐рдпрд╛ рдХрд┐ рдПрдордПрд╕ рд╡рд░реНрдб рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдореЗрдВ рдорд░реНрдЬ рдлрд╝реАрд▓реНрдб рднрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ред рдореБрдЭреЗ рдпрд╣реА рдЪрд╛рд╣рд┐рдП рдерд╛ред
рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдкрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдПрдордПрд╕ рдПрдХреНрд╕реЗрд▓ рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдРрд╕реА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдЬреЛ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддреА рд╣реИред рдЧреНрд░рд╛рд╣рдХ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкреВрд░реА рдирд╣реАрдВ рд╣реИред рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ jdbc рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Oracle рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рддрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдордПрд╕ рд╡рд░реНрдб рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди- рдорд╛рд╡реЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рд╣рдо рдЙрди рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдЖрдкрдХреЛ pom.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдирд┐рд░реНрднрд░рддрд╛<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.9</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.9</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>2.5.6</version> <type>jar</type> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-dao</artifactId> <version>2.0.6</version> <type>jar</type> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>2.5.6</version> <type>jar</type> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>2.5.6</version> <type>jar</type> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>2.5.6</version> <type>jar</type> </dependency> <dependency> <groupId>ojdbc</groupId> <artifactId>ojdbc</artifactId> <version>14</version> </dependency> <dependency> <groupId>org.docx4j</groupId> <artifactId>docx4j</artifactId> <version>2.8.1</version> </dependency>
- рдХреНрд▓рд╛рд╕ рдРрдк рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ - рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдореБрдЦреНрдп рд╡рд░реНрдЧред рдЗрд╕ рд╡рд░реНрдЧ рдХреА рдореБрдЦреНрдп рд╡рд┐рдзрд┐ рдореЗрдВ, рд╣реЗрд▓реНрдкрд░рд╡рд░реНрд▓реНрдб рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрд╕ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдХреНрд░рд┐рдПрд╡рд░реНрдб () рддрд░реАрдХрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд░реНрдЧ public class App { public static void main( String[] args ) { HelperWord helper = new HelperWord(); helper.createWord(); } }
- рд╣реЗрд▓реНрдкрд░рд╡рд░реНрд▓реНрдб рдХреНрд▓рд╛рд╕ рдореЗрдВ, рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдПрдордПрд╕ рд╡рд░реНрдб рдлрд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВред
рд╣реЗрд▓реНрдкрд░рд╡рд░реНрд▓реНрдб рдХреНрд▓рд╛рд╕ import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; import org.docx4j.openpackaging.exceptions.Docx4JException; import org.docx4j.openpackaging.exceptions.InvalidFormatException; import org.docx4j.openpackaging.packages.WordprocessingMLPackage; public class HelperWord {
рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рд╣рдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдорд░реНрдЬ рдлрд╝реАрд▓реНрдб рдХреЛ docx4j рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднрд░рддреЗ рд╣реИрдВред рд╢рд╛рдпрдж рдЖрдкрдХреЛ рдХреЗрд╡рд▓ DataFieldName рдФрд░ MailMerger рдХрдХреНрд╖рд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рджреЛрдиреЛрдВ docx4j рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╡реЗ рдореЗрд░реА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рдирд╣реАрдВ рдереЗред рдЗрд╕рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред рдЗрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж
- DataFieldName рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рдлрд╝реАрд▓реНрдб рд╣реИ рдФрд░ рд╕рдорд╛рди рдкрджреНрдзрддрд┐ рдУрд╡рд░рд░рд╛рдЗрдб рд╣реИред рдпрд╣ рдЗрд╕рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдо рдКрдкрд░реА рдорд╛рдорд▓реЗ рдореЗрдВ рдорд░реНрдЬ рдлрд╝реАрд▓реНрдб рдХреЗ рдирд╛рдореЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ
- MailMerger рд╡рд░реНрдЧ рдХреЗрд╡рд▓ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдорд░реНрдЬ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдорд╛рди рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡рд░реНрдЧ рдХреЛрдб рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ docx4j рд╕реЗ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣рд╛рдБ рд▓рд┐рдВрдХ рд╣реИ
- MyDataManager - рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЧред рдпрд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП MS Excel рдлрд╝рд╛рдЗрд▓ рдФрд░ рд╕реНрдкреНрд░рд┐рдВрдЧрдлреНрд░рд╛рдорд╡рд░реНрдХ.jdbc рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП Apache POI рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдХрдХреНрд╖рд╛ MyDataManager import java.io.*; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import oracle.jdbc.pool.OracleDataSource; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; public class MyDataManager { public NamedParameterJdbcTemplate namedPar; private OracleDataSource getDataSource() throws SQLException {
рдирд┐рд╖реНрдХрд░реНрд╖рд╡рд╣ рдкреВрд░реА рдПрдкреНрд▓реАрдХреЗрд╢рди рд╣реИред рдмреЗрд╢рдХ, рдЗрд╕рдХрд╛ рдмрд╣реБрдд рдХреЛрдб (рдбреЗрдЯрд╛рдмреЗрд╕, рдлрд╝рд╛рдЗрд▓ рдкрде рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕) рдореЗрдВ рд╡рд╛рдпрд░реНрдб рд╣реИ рдФрд░ рдпрд╣ рднреА рдХрдВрд╕реЛрд▓ рд╣реИред рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдЪреЗрдХ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ gui рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд╛рд░реНрдп рдПрдХ рдмрд╛рд░ рдХрд╛ рдХрд╛рд░реНрдп рдерд╛ред рд╡реИрд╕реЗ рднреА, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдкреЛрд╕реНрдЯ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреА!
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!