From 0e5002ca7c6949f0c6a9ca72024ca889ce3bfda8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E5=BA=9C=E5=BC=BA?= <8569561+fuqiangma@user.noreply.gitee.com> Date: Wed, 28 Dec 2022 19:51:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.idea/.gitignore | 8 + .../.idea/.name | 1 + .../MultithreadedExportExcelData-master.iml | 9 + .../.idea/compiler.xml | 21 ++ .../.idea/encodings.xml | 7 + .../.idea/jarRepositories.xml | 20 ++ ...__ch_qos_logback_logback_classic_1_2_3.xml | 13 + ...ven__ch_qos_logback_logback_core_1_2_3.xml | 13 + ..._cn_afterturn_easypoi_annotation_4_1_0.xml | 13 + ...Maven__cn_afterturn_easypoi_base_4_1_0.xml | 13 + .../Maven__cn_afterturn_easypoi_web_4_1_0.xml | 13 + .../Maven__com_alibaba_easyexcel_3_1_1.xml | 13 + ...aven__com_alibaba_easyexcel_core_3_1_1.xml | 13 + ...n__com_alibaba_easyexcel_support_3_1_1.xml | 13 + ...ven__com_baomidou_mybatis_plus_3_4_3_1.xml | 13 + ...omidou_mybatis_plus_annotation_3_4_3_1.xml | 13 + ...idou_mybatis_plus_boot_starter_3_4_3_1.xml | 13 + ...com_baomidou_mybatis_plus_core_3_4_3_1.xml | 13 + ...aomidou_mybatis_plus_extension_3_4_3_1.xml | 13 + .../Maven__com_fasterxml_classmate_1_5_1.xml | 13 + ...ackson_core_jackson_annotations_2_10_3.xml | 13 + ...erxml_jackson_core_jackson_core_2_10_3.xml | 13 + ...l_jackson_core_jackson_databind_2_10_3.xml | 13 + ..._datatype_jackson_datatype_jdk8_2_10_3.xml | 13 + ...atatype_jackson_datatype_jsr310_2_10_3.xml | 13 + ..._jackson_module_parameter_names_2_10_3.xml | 13 + ...__com_github_jsqlparser_jsqlparser_2_0.xml | 13 + ...om_github_pagehelper_pagehelper_5_1_10.xml | 13 + ...elper_spring_boot_autoconfigure_1_2_12.xml | 13 + ..._pagehelper_spring_boot_starter_1_2_12.xml | 13 + ...en__com_github_virtuald_curvesapi_1_06.xml | 13 + .../Maven__com_google_guava_guava_16_0_1.xml | 13 + ...n__com_jayway_jsonpath_json_path_2_4_0.xml | 13 + ...un_istack_istack_commons_runtime_3_0_8.xml | 13 + ...sun_xml_fastinfoset_FastInfoset_1_2_16.xml | 13 + ...ogle_android_json_0_0_20131108_vaadin1.xml | 13 + .../Maven__com_zaxxer_HikariCP_3_4_2.xml | 13 + ...aven__commons_codec_commons_codec_1_13.xml | 13 + ...ctivation_jakarta_activation_api_1_2_2.xml | 13 + ...nnotation_jakarta_annotation_api_1_3_5.xml | 13 + ...alidation_jakarta_validation_api_2_0_2.xml | 13 + ...ta_xml_bind_jakarta_xml_bind_api_2_3_3.xml | 13 + ..._validation_validation_api_2_0_1_Final.xml | 13 + .../libraries/Maven__junit_junit_4_13_1.xml | 13 + ...ven__mysql_mysql_connector_java_8_0_19.xml | 13 + ...Maven__net_bytebuddy_byte_buddy_1_10_8.xml | 13 + ..._net_bytebuddy_byte_buddy_agent_1_10_8.xml | 13 + ...Maven__net_minidev_accessors_smart_1_2.xml | 13 + .../Maven__net_minidev_json_smart_2_3.xml | 13 + .../libraries/Maven__ognl_ognl_3_2_6.xml | 13 + ...pache_commons_commons_collections4_4_3.xml | 13 + ...g_apache_commons_commons_compress_1_18.xml | 13 + ...en__org_apache_commons_commons_csv_1_8.xml | 13 + ...__org_apache_commons_commons_lang3_3_9.xml | 13 + ...org_apache_commons_commons_math3_3_6_1.xml | 13 + ..._apache_logging_log4j_log4j_api_2_12_1.xml | 13 + ...he_logging_log4j_log4j_to_slf4j_2_12_1.xml | 13 + .../Maven__org_apache_poi_poi_4_1_0.xml | 13 + .../Maven__org_apache_poi_poi_ooxml_4_1_0.xml | 13 + ...org_apache_poi_poi_ooxml_schemas_4_1_0.xml | 13 + ..._tomcat_embed_tomcat_embed_core_9_0_33.xml | 13 + ...he_tomcat_embed_tomcat_embed_el_9_0_33.xml | 13 + ...at_embed_tomcat_embed_websocket_9_0_33.xml | 13 + ...en__org_apache_xmlbeans_xmlbeans_3_1_0.xml | 13 + ..._org_apiguardian_apiguardian_api_1_1_0.xml | 13 + ...Maven__org_assertj_assertj_core_3_13_2.xml | 13 + .../Maven__org_ehcache_ehcache_3_8_1.xml | 13 + ..._org_glassfish_jaxb_jaxb_runtime_2_3_2.xml | 13 + .../Maven__org_glassfish_jaxb_txw2_2_3_2.xml | 13 + .../Maven__org_hamcrest_hamcrest_2_1.xml | 13 + .../Maven__org_hamcrest_hamcrest_core_2_1.xml | 13 + ...dator_hibernate_validator_6_0_18_Final.xml | 13 + ...ven__org_javassist_javassist_3_20_0_GA.xml | 13 + ...boss_logging_jboss_logging_3_4_1_Final.xml | 13 + ..._org_junit_jupiter_junit_jupiter_5_5_2.xml | 13 + ..._junit_jupiter_junit_jupiter_api_5_5_2.xml | 13 + ...nit_jupiter_junit_jupiter_engine_5_5_2.xml | 13 + ...nit_jupiter_junit_jupiter_params_5_5_2.xml | 13 + ..._platform_junit_platform_commons_1_5_2.xml | 13 + ...t_platform_junit_platform_engine_1_5_2.xml | 13 + ...nit_vintage_junit_vintage_engine_5_5_2.xml | 13 + .../Maven__org_jvnet_staxex_stax_ex_1_8_1.xml | 13 + .../Maven__org_mockito_mockito_core_3_1_0.xml | 13 + ...rg_mockito_mockito_junit_jupiter_3_1_0.xml | 13 + .../Maven__org_mybatis_mybatis_3_5_7.xml | 13 + ...aven__org_mybatis_mybatis_spring_2_0_6.xml | 13 + ...ybatis_spring_boot_autoconfigure_2_0_1.xml | 13 + ...boot_mybatis_spring_boot_starter_2_0_1.xml | 13 + .../Maven__org_objenesis_objenesis_2_6.xml | 13 + ...Maven__org_opentest4j_opentest4j_1_2_0.xml | 13 + .../Maven__org_ow2_asm_asm_5_0_4.xml | 13 + ...aven__org_projectlombok_lombok_1_18_24.xml | 13 + ...aven__org_skyscreamer_jsonassert_1_5_0.xml | 13 + .../Maven__org_slf4j_jul_to_slf4j_1_7_30.xml | 13 + .../Maven__org_slf4j_slf4j_api_1_7_30.xml | 13 + ...amework_boot_spring_boot_2_2_6_RELEASE.xml | 13 + ...pring_boot_autoconfigure_2_2_6_RELEASE.xml | 13 + ...boot_spring_boot_starter_2_2_6_RELEASE.xml | 13 + ...spring_boot_starter_jdbc_2_2_6_RELEASE.xml | 13 + ...spring_boot_starter_json_2_2_6_RELEASE.xml | 13 + ...ing_boot_starter_logging_2_2_6_RELEASE.xml | 13 + ...spring_boot_starter_test_2_2_6_RELEASE.xml | 13 + ...ring_boot_starter_tomcat_2_2_6_RELEASE.xml | 13 + ..._boot_starter_validation_2_2_6_RELEASE.xml | 13 + ..._spring_boot_starter_web_2_2_6_RELEASE.xml | 13 + ...rk_boot_spring_boot_test_2_2_6_RELEASE.xml | 13 + ..._boot_test_autoconfigure_2_2_6_RELEASE.xml | 13 + ...ringframework_spring_aop_5_2_5_RELEASE.xml | 13 + ...ngframework_spring_beans_5_2_5_RELEASE.xml | 13 + ...framework_spring_context_5_2_5_RELEASE.xml | 13 + ...ingframework_spring_core_5_2_5_RELEASE.xml | 13 + ...mework_spring_expression_5_2_5_RELEASE.xml | 13 + ...ringframework_spring_jcl_5_2_5_RELEASE.xml | 13 + ...ingframework_spring_jdbc_5_2_5_RELEASE.xml | 13 + ...ingframework_spring_test_5_2_5_RELEASE.xml | 13 + ...pringframework_spring_tx_5_2_5_RELEASE.xml | 13 + ...ringframework_spring_web_5_2_5_RELEASE.xml | 13 + ...gframework_spring_webmvc_5_2_5_RELEASE.xml | 13 + .../Maven__org_xmlunit_xmlunit_core_2_6_4.xml | 13 + .../Maven__org_yaml_snakeyaml_1_25.xml | 13 + .../.idea/misc.xml | 11 + .../.idea/modules.xml | 9 + .../ReadedExportExcelData/ExportExcelData.iml | 143 ++++++++++ .../ReadedExportExcelData/README.md | 46 +++ .../ReadedExportExcelData/pom.xml | 100 +++++++ .../wm/file/ExportExcelDataApplication.java | 25 ++ .../wm/file/config/AsyncTaskPoolConfig.java | 27 ++ .../wm/file/config/NamedThreadFactory.java | 39 +++ .../wm/file/controller/FileController.java | 267 ++++++++++++++++++ .../java/com/wm/file/entity/MsgClient.java | 30 ++ .../java/com/wm/file/entity/UserEntity.java | 128 +++++++++ .../com/wm/file/entity/UserEntityRes.java | 101 +++++++ .../java/com/wm/file/mapper/UserMapper.java | 17 ++ .../file/service/IAsynExportExcelService.java | 25 ++ .../java/com/wm/file/service/UserService.java | 13 + .../impl/IAsynExportExcelServiceImpl.java | 126 +++++++++ .../service/impl/IExcelExportServerImpl.java | 43 +++ .../wm/file/service/impl/UserServiceImpl.java | 96 +++++++ .../com/wm/file/util/AsynExcelExportUtil.java | 125 ++++++++ .../com/wm/file/util/MyExcelExportUtil.java | 197 +++++++++++++ .../wm/file/util/PoiSXSSFWorkbookExcel.java | 223 +++++++++++++++ .../java/com/wm/file/util/SpringUtil.java | 75 +++++ .../main/java/com/wm/file/util/ZipUtils.java | 183 ++++++++++++ .../wm/file/util/easypoi/ExcelStyleUtil.java | 193 +++++++++++++ .../util/easypoi/MyExcelExportService.java | 55 ++++ .../src/main/resources/application.properties | 12 + .../resources/com/wm/file/mapper/UserMapper | 10 + .../src/test/java/com/wm/file/TestDemo.java | 117 ++++++++ 148 files changed, 3984 insertions(+) create mode 100644 MultithreadedExportExcelData-master/.idea/.gitignore create mode 100644 MultithreadedExportExcelData-master/.idea/.name create mode 100644 MultithreadedExportExcelData-master/.idea/MultithreadedExportExcelData-master.iml create mode 100644 MultithreadedExportExcelData-master/.idea/compiler.xml create mode 100644 MultithreadedExportExcelData-master/.idea/encodings.xml create mode 100644 MultithreadedExportExcelData-master/.idea/jarRepositories.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__cn_afterturn_easypoi_annotation_4_1_0.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__cn_afterturn_easypoi_base_4_1_0.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__cn_afterturn_easypoi_web_4_1_0.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_alibaba_easyexcel_3_1_1.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_alibaba_easyexcel_core_3_1_1.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_alibaba_easyexcel_support_3_1_1.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_4_3_1.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_4_3_1.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_4_3_1.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_4_3_1.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_4_3_1.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_10_3.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_10_3.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_10_3.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_10_3.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_10_3.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_10_3.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_2_0.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_github_pagehelper_pagehelper_5_1_10.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_autoconfigure_1_2_12.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_starter_1_2_12.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_github_virtuald_curvesapi_1_06.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_google_guava_guava_16_0_1.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_sun_istack_istack_commons_runtime_3_0_8.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_sun_xml_fastinfoset_FastInfoset_1_2_16.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__com_zaxxer_HikariCP_3_4_2.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__commons_codec_commons_codec_1_13.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__junit_junit_4_13_1.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_19.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_8.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_10_8.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__net_minidev_json_smart_2_3.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__ognl_ognl_3_2_6.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_commons_commons_collections4_4_3.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_commons_commons_compress_1_18.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_commons_commons_csv_1_8.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_9.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_commons_commons_math3_3_6_1.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_12_1.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_12_1.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_poi_poi_4_1_0.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_poi_poi_ooxml_4_1_0.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_poi_poi_ooxml_schemas_4_1_0.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_33.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_33.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_33.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_xmlbeans_xmlbeans_3_1_0.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_0.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_assertj_assertj_core_3_13_2.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_ehcache_ehcache_3_8_1.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_glassfish_jaxb_jaxb_runtime_2_3_2.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_glassfish_jaxb_txw2_2_3_2.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_hamcrest_hamcrest_2_1.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_hamcrest_hamcrest_core_2_1.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_18_Final.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_javassist_javassist_3_20_0_GA.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_5_2.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_5_2.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_5_2.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_5_2.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_5_2.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_5_2.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_vintage_junit_vintage_engine_5_5_2.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_jvnet_staxex_stax_ex_1_8_1.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mockito_mockito_core_3_1_0.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_3_1_0.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mybatis_mybatis_3_5_7.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_6.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_0_1.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_0_1.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_objenesis_objenesis_2_6.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_projectlombok_lombok_1_18_24.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_2_6_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_2_6_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_2_6_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_2_6_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_2_6_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_2_6_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_2_6_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_2_6_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_2_6_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_2_6_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_2_6_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_2_6_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_aop_5_2_5_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_beans_5_2_5_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_context_5_2_5_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_core_5_2_5_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_expression_5_2_5_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_jcl_5_2_5_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_jdbc_5_2_5_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_test_5_2_5_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_tx_5_2_5_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_web_5_2_5_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_webmvc_5_2_5_RELEASE.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_6_4.xml create mode 100644 MultithreadedExportExcelData-master/.idea/libraries/Maven__org_yaml_snakeyaml_1_25.xml create mode 100644 MultithreadedExportExcelData-master/.idea/misc.xml create mode 100644 MultithreadedExportExcelData-master/.idea/modules.xml create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/ExportExcelData.iml create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/README.md create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/pom.xml create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/ExportExcelDataApplication.java create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/config/AsyncTaskPoolConfig.java create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/config/NamedThreadFactory.java create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/controller/FileController.java create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/entity/MsgClient.java create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/entity/UserEntity.java create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/entity/UserEntityRes.java create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/mapper/UserMapper.java create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/service/IAsynExportExcelService.java create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/service/UserService.java create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/service/impl/IAsynExportExcelServiceImpl.java create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/service/impl/IExcelExportServerImpl.java create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/service/impl/UserServiceImpl.java create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/AsynExcelExportUtil.java create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/MyExcelExportUtil.java create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/PoiSXSSFWorkbookExcel.java create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/SpringUtil.java create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/ZipUtils.java create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/easypoi/ExcelStyleUtil.java create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/easypoi/MyExcelExportService.java create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/resources/application.properties create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/resources/com/wm/file/mapper/UserMapper create mode 100644 MultithreadedExportExcelData-master/ReadedExportExcelData/src/test/java/com/wm/file/TestDemo.java diff --git a/MultithreadedExportExcelData-master/.idea/.gitignore b/MultithreadedExportExcelData-master/.idea/.gitignore new file mode 100644 index 0000000..1299aea --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/../../../../:\java project\MultithreadedExportExcelData-master\.idea/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/MultithreadedExportExcelData-master/.idea/.name b/MultithreadedExportExcelData-master/.idea/.name new file mode 100644 index 0000000..56db958 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/.name @@ -0,0 +1 @@ +ExportExcelData \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/MultithreadedExportExcelData-master.iml b/MultithreadedExportExcelData-master/.idea/MultithreadedExportExcelData-master.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/MultithreadedExportExcelData-master.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/compiler.xml b/MultithreadedExportExcelData-master/.idea/compiler.xml new file mode 100644 index 0000000..09702b4 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/compiler.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/encodings.xml b/MultithreadedExportExcelData-master/.idea/encodings.xml new file mode 100644 index 0000000..77b71bc --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/jarRepositories.xml b/MultithreadedExportExcelData-master/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml new file mode 100644 index 0000000..44c1ba0 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml new file mode 100644 index 0000000..ca0f837 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__cn_afterturn_easypoi_annotation_4_1_0.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__cn_afterturn_easypoi_annotation_4_1_0.xml new file mode 100644 index 0000000..6602979 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__cn_afterturn_easypoi_annotation_4_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__cn_afterturn_easypoi_base_4_1_0.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__cn_afterturn_easypoi_base_4_1_0.xml new file mode 100644 index 0000000..a101952 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__cn_afterturn_easypoi_base_4_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__cn_afterturn_easypoi_web_4_1_0.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__cn_afterturn_easypoi_web_4_1_0.xml new file mode 100644 index 0000000..26905ac --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__cn_afterturn_easypoi_web_4_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_alibaba_easyexcel_3_1_1.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_alibaba_easyexcel_3_1_1.xml new file mode 100644 index 0000000..4f1654e --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_alibaba_easyexcel_3_1_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_alibaba_easyexcel_core_3_1_1.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_alibaba_easyexcel_core_3_1_1.xml new file mode 100644 index 0000000..45d8a7c --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_alibaba_easyexcel_core_3_1_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_alibaba_easyexcel_support_3_1_1.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_alibaba_easyexcel_support_3_1_1.xml new file mode 100644 index 0000000..59ac707 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_alibaba_easyexcel_support_3_1_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_4_3_1.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_4_3_1.xml new file mode 100644 index 0000000..4ad76e6 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_4_3_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_4_3_1.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_4_3_1.xml new file mode 100644 index 0000000..c69f2f8 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_4_3_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_4_3_1.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_4_3_1.xml new file mode 100644 index 0000000..0c93231 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_4_3_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_4_3_1.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_4_3_1.xml new file mode 100644 index 0000000..4f384c1 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_4_3_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_4_3_1.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_4_3_1.xml new file mode 100644 index 0000000..d848f0d --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_4_3_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml new file mode 100644 index 0000000..0f099c7 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_10_3.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_10_3.xml new file mode 100644 index 0000000..4507778 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_10_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_10_3.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_10_3.xml new file mode 100644 index 0000000..29129b0 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_10_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_10_3.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_10_3.xml new file mode 100644 index 0000000..e476b1b --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_10_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_10_3.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_10_3.xml new file mode 100644 index 0000000..207d739 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_10_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_10_3.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_10_3.xml new file mode 100644 index 0000000..494d78e --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_10_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_10_3.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_10_3.xml new file mode 100644 index 0000000..0143158 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_10_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_2_0.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_2_0.xml new file mode 100644 index 0000000..ad12641 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_2_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_github_pagehelper_pagehelper_5_1_10.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_github_pagehelper_pagehelper_5_1_10.xml new file mode 100644 index 0000000..5996d82 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_github_pagehelper_pagehelper_5_1_10.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_autoconfigure_1_2_12.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_autoconfigure_1_2_12.xml new file mode 100644 index 0000000..12b02e6 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_autoconfigure_1_2_12.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_starter_1_2_12.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_starter_1_2_12.xml new file mode 100644 index 0000000..de2bbc7 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_starter_1_2_12.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_github_virtuald_curvesapi_1_06.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_github_virtuald_curvesapi_1_06.xml new file mode 100644 index 0000000..b06dd90 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_github_virtuald_curvesapi_1_06.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_google_guava_guava_16_0_1.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_google_guava_guava_16_0_1.xml new file mode 100644 index 0000000..44ec8f2 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_google_guava_guava_16_0_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml new file mode 100644 index 0000000..2c23f7b --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_sun_istack_istack_commons_runtime_3_0_8.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_sun_istack_istack_commons_runtime_3_0_8.xml new file mode 100644 index 0000000..bcad060 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_sun_istack_istack_commons_runtime_3_0_8.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_sun_xml_fastinfoset_FastInfoset_1_2_16.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_sun_xml_fastinfoset_FastInfoset_1_2_16.xml new file mode 100644 index 0000000..474a96d --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_sun_xml_fastinfoset_FastInfoset_1_2_16.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml new file mode 100644 index 0000000..5246203 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_zaxxer_HikariCP_3_4_2.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_zaxxer_HikariCP_3_4_2.xml new file mode 100644 index 0000000..bf81736 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__com_zaxxer_HikariCP_3_4_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__commons_codec_commons_codec_1_13.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__commons_codec_commons_codec_1_13.xml new file mode 100644 index 0000000..1da2270 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__commons_codec_commons_codec_1_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml new file mode 100644 index 0000000..d20505d --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml new file mode 100644 index 0000000..7caed99 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml new file mode 100644 index 0000000..6b94c18 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml new file mode 100644 index 0000000..5f1e886 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml new file mode 100644 index 0000000..305d5fe --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__junit_junit_4_13_1.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__junit_junit_4_13_1.xml new file mode 100644 index 0000000..467e6dd --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__junit_junit_4_13_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_19.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_19.xml new file mode 100644 index 0000000..1588020 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_19.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_8.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_8.xml new file mode 100644 index 0000000..089100e --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_8.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_10_8.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_10_8.xml new file mode 100644 index 0000000..a28be17 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_10_8.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml new file mode 100644 index 0000000..a894af5 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__net_minidev_json_smart_2_3.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__net_minidev_json_smart_2_3.xml new file mode 100644 index 0000000..40ef52b --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__net_minidev_json_smart_2_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__ognl_ognl_3_2_6.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__ognl_ognl_3_2_6.xml new file mode 100644 index 0000000..1c2dcf1 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__ognl_ognl_3_2_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_commons_commons_collections4_4_3.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_commons_commons_collections4_4_3.xml new file mode 100644 index 0000000..a9b4855 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_commons_commons_collections4_4_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_commons_commons_compress_1_18.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_commons_commons_compress_1_18.xml new file mode 100644 index 0000000..c531c7f --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_commons_commons_compress_1_18.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_commons_commons_csv_1_8.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_commons_commons_csv_1_8.xml new file mode 100644 index 0000000..640c4b5 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_commons_commons_csv_1_8.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_9.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_9.xml new file mode 100644 index 0000000..bf579ea --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_9.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_commons_commons_math3_3_6_1.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_commons_commons_math3_3_6_1.xml new file mode 100644 index 0000000..f28e6aa --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_commons_commons_math3_3_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_12_1.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_12_1.xml new file mode 100644 index 0000000..0773677 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_12_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_12_1.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_12_1.xml new file mode 100644 index 0000000..7c8d673 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_12_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_poi_poi_4_1_0.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_poi_poi_4_1_0.xml new file mode 100644 index 0000000..4a461b7 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_poi_poi_4_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_poi_poi_ooxml_4_1_0.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_poi_poi_ooxml_4_1_0.xml new file mode 100644 index 0000000..a55640a --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_poi_poi_ooxml_4_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_poi_poi_ooxml_schemas_4_1_0.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_poi_poi_ooxml_schemas_4_1_0.xml new file mode 100644 index 0000000..37bf6d6 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_poi_poi_ooxml_schemas_4_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_33.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_33.xml new file mode 100644 index 0000000..2a1fc37 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_33.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_33.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_33.xml new file mode 100644 index 0000000..d0caadb --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_33.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_33.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_33.xml new file mode 100644 index 0000000..97528f4 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_33.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_xmlbeans_xmlbeans_3_1_0.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_xmlbeans_xmlbeans_3_1_0.xml new file mode 100644 index 0000000..3da0ea5 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apache_xmlbeans_xmlbeans_3_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_0.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_0.xml new file mode 100644 index 0000000..b07b289 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_assertj_assertj_core_3_13_2.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_assertj_assertj_core_3_13_2.xml new file mode 100644 index 0000000..3407ee5 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_assertj_assertj_core_3_13_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_ehcache_ehcache_3_8_1.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_ehcache_ehcache_3_8_1.xml new file mode 100644 index 0000000..09735df --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_ehcache_ehcache_3_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_glassfish_jaxb_jaxb_runtime_2_3_2.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_glassfish_jaxb_jaxb_runtime_2_3_2.xml new file mode 100644 index 0000000..e1ab018 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_glassfish_jaxb_jaxb_runtime_2_3_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_glassfish_jaxb_txw2_2_3_2.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_glassfish_jaxb_txw2_2_3_2.xml new file mode 100644 index 0000000..46d7ee2 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_glassfish_jaxb_txw2_2_3_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_hamcrest_hamcrest_2_1.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_hamcrest_hamcrest_2_1.xml new file mode 100644 index 0000000..ba1a2b0 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_hamcrest_hamcrest_2_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_hamcrest_hamcrest_core_2_1.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_hamcrest_hamcrest_core_2_1.xml new file mode 100644 index 0000000..4309ea6 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_hamcrest_hamcrest_core_2_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_18_Final.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_18_Final.xml new file mode 100644 index 0000000..1307b15 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_18_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_javassist_javassist_3_20_0_GA.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_javassist_javassist_3_20_0_GA.xml new file mode 100644 index 0000000..7829eed --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_javassist_javassist_3_20_0_GA.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml new file mode 100644 index 0000000..ada1907 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_5_2.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_5_2.xml new file mode 100644 index 0000000..2095a21 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_5_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_5_2.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_5_2.xml new file mode 100644 index 0000000..bd507aa --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_5_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_5_2.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_5_2.xml new file mode 100644 index 0000000..01939fb --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_5_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_5_2.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_5_2.xml new file mode 100644 index 0000000..ebda8bb --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_5_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_5_2.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_5_2.xml new file mode 100644 index 0000000..4952174 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_5_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_5_2.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_5_2.xml new file mode 100644 index 0000000..d821809 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_5_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_vintage_junit_vintage_engine_5_5_2.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_vintage_junit_vintage_engine_5_5_2.xml new file mode 100644 index 0000000..158f1f9 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_junit_vintage_junit_vintage_engine_5_5_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_jvnet_staxex_stax_ex_1_8_1.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_jvnet_staxex_stax_ex_1_8_1.xml new file mode 100644 index 0000000..b53da88 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_jvnet_staxex_stax_ex_1_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mockito_mockito_core_3_1_0.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mockito_mockito_core_3_1_0.xml new file mode 100644 index 0000000..c3a1f3f --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mockito_mockito_core_3_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_3_1_0.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_3_1_0.xml new file mode 100644 index 0000000..de5eb1d --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_3_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mybatis_mybatis_3_5_7.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mybatis_mybatis_3_5_7.xml new file mode 100644 index 0000000..7871d4e --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mybatis_mybatis_3_5_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_6.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_6.xml new file mode 100644 index 0000000..79a672e --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_0_1.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_0_1.xml new file mode 100644 index 0000000..f359545 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_0_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_0_1.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_0_1.xml new file mode 100644 index 0000000..cbc8091 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_0_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_objenesis_objenesis_2_6.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_objenesis_objenesis_2_6.xml new file mode 100644 index 0000000..10fc9d3 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_objenesis_objenesis_2_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml new file mode 100644 index 0000000..e43c22e --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml new file mode 100644 index 0000000..4f737ae --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_projectlombok_lombok_1_18_24.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_projectlombok_lombok_1_18_24.xml new file mode 100644 index 0000000..26767dc --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_projectlombok_lombok_1_18_24.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml new file mode 100644 index 0000000..9b78e42 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml new file mode 100644 index 0000000..0861f6d --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml new file mode 100644 index 0000000..a442768 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_2_6_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_2_6_RELEASE.xml new file mode 100644 index 0000000..ee2bf20 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_2_6_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_2_6_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_2_6_RELEASE.xml new file mode 100644 index 0000000..7869059 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_2_6_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_2_6_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_2_6_RELEASE.xml new file mode 100644 index 0000000..3ca3167 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_2_6_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_2_6_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_2_6_RELEASE.xml new file mode 100644 index 0000000..c785db0 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_2_6_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_2_6_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_2_6_RELEASE.xml new file mode 100644 index 0000000..da39468 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_2_6_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_2_6_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_2_6_RELEASE.xml new file mode 100644 index 0000000..3059fe4 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_2_6_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_2_6_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_2_6_RELEASE.xml new file mode 100644 index 0000000..452909e --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_2_6_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_2_6_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_2_6_RELEASE.xml new file mode 100644 index 0000000..f7b775c --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_2_6_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_2_6_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_2_6_RELEASE.xml new file mode 100644 index 0000000..a2388c7 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_2_6_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_2_6_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_2_6_RELEASE.xml new file mode 100644 index 0000000..1bacb5c --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_2_6_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_2_6_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_2_6_RELEASE.xml new file mode 100644 index 0000000..5d999d4 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_2_6_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_2_6_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_2_6_RELEASE.xml new file mode 100644 index 0000000..da5f265 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_2_6_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_aop_5_2_5_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_aop_5_2_5_RELEASE.xml new file mode 100644 index 0000000..aa9a77b --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_aop_5_2_5_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_beans_5_2_5_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_beans_5_2_5_RELEASE.xml new file mode 100644 index 0000000..d8352b1 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_beans_5_2_5_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_context_5_2_5_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_context_5_2_5_RELEASE.xml new file mode 100644 index 0000000..4e5e2f1 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_context_5_2_5_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_core_5_2_5_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_core_5_2_5_RELEASE.xml new file mode 100644 index 0000000..b23730c --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_core_5_2_5_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_expression_5_2_5_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_expression_5_2_5_RELEASE.xml new file mode 100644 index 0000000..14aaba1 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_expression_5_2_5_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_jcl_5_2_5_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_jcl_5_2_5_RELEASE.xml new file mode 100644 index 0000000..3fa0a6b --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_jcl_5_2_5_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_jdbc_5_2_5_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_jdbc_5_2_5_RELEASE.xml new file mode 100644 index 0000000..acca2ee --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_jdbc_5_2_5_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_test_5_2_5_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_test_5_2_5_RELEASE.xml new file mode 100644 index 0000000..c0bcfe3 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_test_5_2_5_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_tx_5_2_5_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_tx_5_2_5_RELEASE.xml new file mode 100644 index 0000000..536b800 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_tx_5_2_5_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_web_5_2_5_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_web_5_2_5_RELEASE.xml new file mode 100644 index 0000000..efc68d1 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_web_5_2_5_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_webmvc_5_2_5_RELEASE.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_webmvc_5_2_5_RELEASE.xml new file mode 100644 index 0000000..17426d0 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_springframework_spring_webmvc_5_2_5_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_6_4.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_6_4.xml new file mode 100644 index 0000000..942ddc2 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_6_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_yaml_snakeyaml_1_25.xml b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_yaml_snakeyaml_1_25.xml new file mode 100644 index 0000000..7591084 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/libraries/Maven__org_yaml_snakeyaml_1_25.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/misc.xml b/MultithreadedExportExcelData-master/.idea/misc.xml new file mode 100644 index 0000000..85858b4 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/misc.xml @@ -0,0 +1,11 @@ + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/.idea/modules.xml b/MultithreadedExportExcelData-master/.idea/modules.xml new file mode 100644 index 0000000..83a0480 --- /dev/null +++ b/MultithreadedExportExcelData-master/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/ExportExcelData.iml b/MultithreadedExportExcelData-master/ReadedExportExcelData/ExportExcelData.iml new file mode 100644 index 0000000..4985767 --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/ExportExcelData.iml @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/README.md b/MultithreadedExportExcelData-master/ReadedExportExcelData/README.md new file mode 100644 index 0000000..ab51106 --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/README.md @@ -0,0 +1,46 @@ +# 多线程实现百万级数据导出到excel + +## **考虑前提:** + +大数据量导出到文件,首先需要考虑的是内存溢出的场景:数据库读取数据到内存中、将数据写入到excel进行大量的IO操作。然后考虑到一个文件数据过大,用户打开慢,体验不好。针对这些问题的考虑,采用多线程的方式多个线程同时处理查询数据,一个线程生成一个excel,最后在合并数据返回,以达到提高效率的目的。 + +## **实现思路:** +1.使用easyExecl结合批量线程池执行,结合线程分批处理数据缩短查询数据库时间和导出数据时间,查询数据速度比较理想 +测试接口:http://localhost:8080/exportEasyExcel?pageNum=0&pageSize=100000&limit=4000 +2.使用easyExecl结合循环线程池执行,结合线程分批处理数据缩短查询数据库时间和导出数据时间,查询数据速度不理想 +测试接口:http://localhost:8080/exportEasyExcelV1?pageNum=0&pageSize=60000&limit=2000 +3.使用SXSSFWorkbook结合批量线程池执行,结合线程分批处理数据缩短查询数据库时间和导出数据时间,效果最优最理想 +http://localhost:8080/exportEasyExcelV4?pageNum=0&pageSize=30000&limit=2000 + +模拟sql可以结合测试类本地造数据: +CREATE TABLE `user` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(255) DEFAULT NULL, + `phone` varchar(255) DEFAULT NULL, + `ceate_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, + `remark` varchar(255) DEFAULT NULL, + `birthday` datetime DEFAULT NULL, + `test1` varchar(255) DEFAULT NULL, + `test2` varchar(255) DEFAULT NULL, + `test3` varchar(255) DEFAULT NULL, + `test4` varchar(255) DEFAULT NULL, + `test5` varchar(255) DEFAULT NULL, + `test6` varchar(255) DEFAULT NULL, + `test7` varchar(255) DEFAULT NULL, + `test8` varchar(255) DEFAULT NULL, + `test9` varchar(255) DEFAULT NULL, + `test10` varchar(255) DEFAULT NULL, + `test11` varchar(255) DEFAULT NULL, + `test12` varchar(255) DEFAULT NULL, + `test13` varchar(255) DEFAULT NULL, + `test14` varchar(255) DEFAULT NULL, + `test15` varchar(255) DEFAULT NULL, + `test16` varchar(255) DEFAULT NULL, + `test17` varchar(255) DEFAULT NULL, + `test18` varchar(255) DEFAULT NULL, + `test19` varchar(255) DEFAULT NULL, + `test20` varchar(255) DEFAULT NULL, + `test21` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=600001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; + diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/pom.xml b/MultithreadedExportExcelData-master/ReadedExportExcelData/pom.xml new file mode 100644 index 0000000..9789586 --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/pom.xml @@ -0,0 +1,100 @@ + + + 4.0.0 + + + org.springframework.boot + spring-boot-starter-parent + 2.2.6.RELEASE + + + + com.wm.file + ExportExcelData + 1.0-SNAPSHOT + + + + + cn.afterturn + easypoi-base + 4.1.0 + + + cn.afterturn + easypoi-web + 4.1.0 + + + cn.afterturn + easypoi-annotation + 4.1.0 + + + org.springframework.boot + spring-boot-starter-web + + + org.projectlombok + lombok + 1.18.24 + + + com.baomidou + mybatis-plus-boot-starter + 3.4.3.1 + + + mysql + mysql-connector-java + + + org.springframework.boot + spring-boot-starter-jdbc + + + + org.springframework.boot + spring-boot-starter-test + test + + + junit + junit + 4.13.1 + test + + + com.github.pagehelper + pagehelper-spring-boot-starter + 1.2.12 + + + mybatis-spring + org.mybatis + + + mybatis + org.mybatis + + + + + + com.alibaba + easyexcel + 3.1.1 + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/ExportExcelDataApplication.java b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/ExportExcelDataApplication.java new file mode 100644 index 0000000..7b818c7 --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/ExportExcelDataApplication.java @@ -0,0 +1,25 @@ +package com.wm.file; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; + +/** + * @ClassName: ExportExcelDataApplication + * @Description: 启动类 + * @Author: xiaomage + * @Date: 2022/5/3 19:01 + **/ +@EnableCaching +@EnableScheduling +@SpringBootApplication +@EnableAsync +@MapperScan("com.wm.file.mapper")//扫描mapper接口所在的包 +public class ExportExcelDataApplication { + public static void main(String[] args) { + SpringApplication.run(ExportExcelDataApplication.class, args); + } +} diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/config/AsyncTaskPoolConfig.java b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/config/AsyncTaskPoolConfig.java new file mode 100644 index 0000000..3c529c7 --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/config/AsyncTaskPoolConfig.java @@ -0,0 +1,27 @@ +package com.wm.file.config; + +import org.apache.poi.ss.formula.functions.Na; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +import java.util.concurrent.Executor; +import java.util.concurrent.LinkedBlockingDeque; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +@Configuration +@EnableAsync +public class AsyncTaskPoolConfig { + + @Bean("taskExecutor") + public ThreadPoolExecutor taskExecutor() { + int i = Runtime.getRuntime().availableProcessors(); + System.out.println("系统最大线程数:" + i); + ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(i, + i+1, 5, TimeUnit.SECONDS, new LinkedBlockingDeque<>(),new NamedThreadFactory("execl导出线程池")); + System.out.println("execl导出线程池初始化完毕-------------"); + return threadPoolExecutor; + } +} diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/config/NamedThreadFactory.java b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/config/NamedThreadFactory.java new file mode 100644 index 0000000..a2ecdc5 --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/config/NamedThreadFactory.java @@ -0,0 +1,39 @@ +package com.wm.file.config; + +import java.util.concurrent.ThreadFactory; +import java.util.concurrent.atomic.AtomicInteger; + +public class NamedThreadFactory implements ThreadFactory { + + private final AtomicInteger poolNumber = new AtomicInteger(1); + + private final ThreadGroup threadGroup; + + private final AtomicInteger threadNumber = new AtomicInteger(1); + + public final String namePrefix; + + NamedThreadFactory(String name){ + SecurityManager s = System.getSecurityManager(); + threadGroup = (s != null) ? s.getThreadGroup() : + Thread.currentThread().getThreadGroup(); + if (null==name || "".equals(name.trim())){ + name = "pool"; + } + namePrefix = name +"-"+ + poolNumber.getAndIncrement() + + "-thread-"; + } + + @Override + public Thread newThread(Runnable r) { + Thread t = new Thread(threadGroup, r, + namePrefix + threadNumber.getAndIncrement(), + 0); + if (t.isDaemon()) + t.setDaemon(false); + if (t.getPriority() != Thread.NORM_PRIORITY) + t.setPriority(Thread.NORM_PRIORITY); + return t; + } + } \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/controller/FileController.java b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/controller/FileController.java new file mode 100644 index 0000000..63d2c84 --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/controller/FileController.java @@ -0,0 +1,267 @@ +package com.wm.file; + +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.ExportParams; +import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; +import cn.afterturn.easypoi.handler.inter.IExcelExportServer; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.support.ExcelTypeEnum; +import com.github.pagehelper.PageHelper; +import com.wm.file.entity.MsgClient; +import com.wm.file.entity.UserEntity; +import com.wm.file.entity.UserEntityRes; +import com.wm.file.mapper.UserMapper; +import com.wm.file.service.UserService; +import com.wm.file.util.AsynExcelExportUtil; +import com.wm.file.util.MyExcelExportUtil; +import com.wm.file.util.PoiSXSSFWorkbookExcel; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.streaming.SXSSFWorkbook; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @ClassName:FileController + * @Description: + * @Author:xiaomage + * @Date:2020/6/15 22:42 + **/ +@RestController +public class FileController { + + @Resource + private MyExcelExportUtil myExcelExportUtil; + @Resource + private IExcelExportServer exportBigExcel; + @Resource + private AsynExcelExportUtil asynExcelExportUtil; + + @Autowired + private UserMapper userMapper; + + @Resource + private UserService userService; + + @GetMapping(value = "/exportEasyExcel") + public void exportEasyExcel(HttpServletResponse response,Integer total,Integer limit) { + long start = System.currentTimeMillis(); + System.out.println("-----------任务执行开始-----------"); + // 设置响应内容 + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("UTF-8");// 防止下载的文件名字乱码 + try { + // 文件以附件形式下载 + response.setHeader("Content-disposition", + "attachment;filename=down_" +URLEncoder.encode(System.currentTimeMillis() + ".xlsx", "utf-8")); + List userEntityList = userService.selectAll(total,limit); + long start1 = System.currentTimeMillis(); + EasyExcel.write(response.getOutputStream(), UserEntity.class).excelType(ExcelTypeEnum.XLSX).sheet("文件下载") + .doWrite(userEntityList); + long end = System.currentTimeMillis(); + System.out.println("导出execl文件生成总耗时: " + (end - start1) + "ms"); + System.out.println("本次导出execl任务执行完毕,共消耗: " + (end - start) + "ms"); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + + + + @GetMapping(value = "/exportEasyExcelV4") + public void exportEasyExcelV4(HttpServletResponse response,Integer total,Integer limit) throws IOException { + long start = System.currentTimeMillis(); + System.out.println("-----------任务执行开始-----------"); + // 设置响应内容 + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("UTF-8");// 防止下载的文件名字乱码 + // 文件以附件形式下载 + response.setHeader("Content-disposition", + "attachment;filename=down_" +URLEncoder.encode(System.currentTimeMillis() + ".xlsx", "utf-8")); + try { + String sheetName = "业务清单"; + String[] title = new String[]{ + "主键ID" + ,"姓名" + ,"手机" + ,"创建人" + ,"备注" + ,"测试数据1" + ,"测试数据2" + ,"测试数据3" + ,"测试数据4" + ,"测试数据5" + ,"测试数据6" + ,"测试数据7" + ,"测试数据8" + ,"测试数据9" + ,"测试数据10" + ,"测试数据11" + ,"测试数据12" + ,"测试数据13" + ,"测试数据14" + ,"测试数据15" + ,"测试数据16" + ,"测试数据17" + ,"测试数据18" + ,"测试数据19" + ,"测试数据20" + ,"测试数据21" + }; + List> data1 = new ArrayList>(); + List userEntityList = userService.selectAll(total,limit); + for (UserEntity userEntity : userEntityList) { + List rowData = new ArrayList<>(); + rowData.add(userEntity.getId()); //归属机构 + rowData.add(userEntity.getName()); //姓名 + rowData.add(userEntity.getPhone()); //姓名 + rowData.add(userEntity.getCeateBy()); //姓名 + rowData.add(userEntity.getRemark()); //姓名 + rowData.add(userEntity.getTest1()); //姓名 + rowData.add(userEntity.getTest2()); //姓名 + rowData.add(userEntity.getTest3()); //姓名 + rowData.add(userEntity.getTest4()); //姓名 + rowData.add(userEntity.getTest5()); //姓名 + rowData.add(userEntity.getTest6()); //姓名 + rowData.add(userEntity.getTest7()); //姓名 + rowData.add(userEntity.getTest8()); //姓名 + rowData.add(userEntity.getTest9()); //姓名 + rowData.add(userEntity.getTest10()); //姓名 + rowData.add(userEntity.getTest11()); //姓名 + rowData.add(userEntity.getTest12()); //姓名 + rowData.add(userEntity.getTest13()); //姓名 + rowData.add(userEntity.getTest14()); //姓名 + rowData.add(userEntity.getTest15()); //姓名 + rowData.add(userEntity.getTest16()); //姓名 + rowData.add(userEntity.getTest17()); //姓名 + rowData.add(userEntity.getTest18()); //姓名 + rowData.add(userEntity.getTest19()); //姓名 + rowData.add(userEntity.getTest20()); //姓名 + rowData.add(userEntity.getTest21()); //姓名 + data1.add(rowData); + } + long start1 = System.currentTimeMillis(); + SXSSFWorkbook wb = PoiSXSSFWorkbookExcel.getSxssfwbExcel(sheetName,title, data1); + long end = System.currentTimeMillis(); + System.out.println("导出execl文件生成总耗时: " + (end - start1) + "ms"); + ServletOutputStream output = response.getOutputStream(); + wb.write(output); + output.flush(); + output.close(); + System.out.println("本次导出execl任务执行完毕,共"+userEntityList.size()+"条数据,共消耗: " + (end - start) + "ms"); + } catch (Exception e) { + throw new RuntimeException(e); + } + + } + + + @GetMapping(value = "/exportEasyExcel1") + public void exportEasyExcel1(HttpServletResponse response,Integer pageNum,Integer pageSize,Integer limit) { + long start = System.currentTimeMillis(); + System.out.println("-----------任务执行开始-----------"); + // 设置响应内容 + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("UTF-8");// 防止下载的文件名字乱码 + try { + // 文件以附件形式下载 + response.setHeader("Content-disposition", + "attachment;filename=down_" +URLEncoder.encode(System.currentTimeMillis() + ".xlsx", "utf-8")); + PageHelper.startPage(pageNum,pageSize); + long start1 = System.currentTimeMillis(); + List userEntityList = userMapper.selectAll(); + System.out.println("查询数据条数:"+userEntityList.size()+" 数据库查询数据总耗时: " + (System.currentTimeMillis() - start1) + "ms"); + long start2 = System.currentTimeMillis(); + EasyExcel.write(response.getOutputStream(), UserEntity.class).sheet("文件下载") + .doWrite(userEntityList); + System.out.println("execl生成总耗时: " + (System.currentTimeMillis() - start2) + "ms"); + System.out.println("任务执行完毕共消耗: " + (System.currentTimeMillis() - start) + "ms"); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + @GetMapping(value = "/asynExport1") + public void asynExportData1(HttpServletResponse response) throws InterruptedException { + System.out.println("请求成功"); + } + + @GetMapping(value = "/asynExport") + public void asynExportData(HttpServletResponse response) throws InterruptedException { + asynExcelExportUtil.threadExcel(response); + //1000000-39511ms 100000-7750ms 10000-789ms + } + + /** + * 数据库40w数据导出execl + * @param response + * @throws InterruptedException + */ + @GetMapping(value = "/asynExportDatabtase") + public void asynExportDatabtase(HttpServletResponse response) throws InterruptedException { + asynExcelExportUtil.threadExcelDatabase(response); + //1000000-39511ms 100000-7750ms 10000-789ms + } + + /** + * 普通数据量导出(修改表格宽度测试) + */ + @GetMapping(value = "/export2") + public void test2() { + List list = new ArrayList<>(); + for (int i = 0; i < 100000; i++) { //测试数据 + MsgClient client = new MsgClient(); + client.setBirthday(new Date()); + client.setClientName("小明xxxsxsxsxsxsxsxsxsxsx" + i); + client.setClientPhone("18797" + i); + client.setCreateBy("JueYue"); + client.setId("1" + i); + client.setRemark("测试" + i); + list.add(client); + } + try { + long start = System.currentTimeMillis(); + Workbook workbook = myExcelExportUtil.getWorkbook("计算机一班学生", "学生", MsgClient.class, list, ExcelType.XSSF); + String filePath = "C:\\Users\\Administrator\\Desktop\\export\\exportAll.xlsx"; + File file = new File(filePath); + MyExcelExportUtil.exportExcel2(workbook, file); + long end = System.currentTimeMillis(); + System.out.println("任务执行完毕共消耗: " + (end - start) + "ms"); + //1000000-69407ms 100000-3518ms 10000-1310ms + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * 大数据量导出测试 + * + * @param response + * @throws IOException + */ + @GetMapping(value = "/bigDataExport") + public void bigDataExport(HttpServletResponse response) throws IOException { + Date start = new Date(); + ExportParams params = new ExportParams("大数据测试", "测试"); + Workbook workbook = ExcelExportUtil.exportBigExcel(params, MsgClient.class, exportBigExcel, new Object()); + MyExcelExportUtil.exportExcel(workbook, String.valueOf(System.currentTimeMillis()), response); + System.out.println("bigDataExport:" + (new Date().getTime() - start.getTime()));//10000-bigDataExport:2278 100000-bigDataExport:19083 1000000-bigDataExport:693672 + } + + + + +} diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/entity/MsgClient.java b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/entity/MsgClient.java new file mode 100644 index 0000000..4d8c93e --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/entity/MsgClient.java @@ -0,0 +1,30 @@ +package com.wm.file.entity; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import cn.afterturn.easypoi.excel.annotation.ExcelTarget; +import lombok.Data; + +import java.util.Date; + +/** + * @ClassName: MsgClient + * @Description: + * @Author: xiaomage + * @Date: 2021-07-24 19:09 + **/ +@Data +@ExcelTarget("msgClient") +public class MsgClient { + @Excel(name = "客户姓名") + private String clientName; + @Excel(name = "客户电话号码") + private String clientPhone; + @Excel(name = "创建人") + private String createBy; + @Excel(name = "ID") + private String id; + @Excel(name = "标记") + private String remark; + @Excel(name = "生日") + private Date birthday; +} diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/entity/UserEntity.java b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/entity/UserEntity.java new file mode 100644 index 0000000..ff3fba7 --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/entity/UserEntity.java @@ -0,0 +1,128 @@ +package com.wm.file.entity; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +@Data +@TableName(value = "user")//指定表名 +public class UserEntity implements Serializable { + + private static final long serialVersionUID = -5644799954031156649L; + + @TableId(value = "id", type = IdType.AUTO)//指定自增策略 + @ExcelProperty(value = "主键ID" ,index = 0) + private String id; + + @TableField("name") + @ExcelProperty(value = "姓名" ,index = 1) + private String name; + + @TableField("phone") + @ExcelProperty(value = "手机" ,index = 2) + private String phone; + + @TableField("ceate_by") + @ExcelProperty(value = "创建人" ,index = 3) + private String ceateBy; + + @TableField("remark") + @ExcelProperty(value = "备注" ,index = 4) + private String remark; + + /*@TableField("birthday") + @ExcelProperty(value = "生日" ,index = 5) + private Date birthday;*/ + + @TableField("test1") + @ExcelProperty(value = "测试数据1" ,index = 6) + private String test1; + + @TableField("test2") + @ExcelProperty(value = "测试数据2" ,index = 7) + private String test2; + + @TableField("test3") + @ExcelProperty(value = "测试数据3" ,index = 8) + private String test3; + + @TableField("test4") + @ExcelProperty(value = "测试数据4" ,index = 9) + private String test4; + + @TableField("test5") + @ExcelProperty(value = "测试数据5" ,index = 10) + private String test5; + + @TableField("test6") + @ExcelProperty(value = "测试数据6" ,index = 11) + private String test6; + + @TableField("test7") + @ExcelProperty(value = "测试数据7" ,index = 12) + private String test7; + + @TableField("test8") + @ExcelProperty(value = "测试数据8" ,index = 13) + private String test8; + + @TableField("test9") + @ExcelProperty(value = "测试数据9" ,index = 14) + private String test9; + + @TableField("test10") + @ExcelProperty(value = "测试数据10" ,index = 15) + private String test10; + + @TableField("test11") + @ExcelProperty(value = "测试数据11" ,index = 16) + private String test11; + + @TableField("test12") + @ExcelProperty(value = "测试数据12" ,index =17) + private String test12; + + @TableField("test13") + @ExcelProperty(value = "测试数据13" ,index = 18) + private String test13; + + @TableField("test14") + @ExcelProperty(value = "测试数据14" ,index = 19) + private String test14; + + @TableField("test15") + @ExcelProperty(value = "测试数据15" ,index = 20) + private String test15; + + @TableField("test16") + @ExcelProperty(value = "测试数据16" ,index = 21) + private String test16; + + @TableField("test17") + @ExcelProperty(value = "测试数据17" ,index = 22) + private String test17; + + @TableField("test18") + @ExcelProperty(value = "测试数据18" ,index = 23) + private String test18; + + @TableField("test19") + @ExcelProperty(value = "测试数据19" ,index = 24) + private String test19; + + @TableField("test20") + @ExcelProperty(value = "测试数据20" ,index = 25) + private String test20; + + @TableField("test21") + @ExcelProperty(value = "测试数据21" ,index = 26) + private String test21; +} diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/entity/UserEntityRes.java b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/entity/UserEntityRes.java new file mode 100644 index 0000000..18d7cbf --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/entity/UserEntityRes.java @@ -0,0 +1,101 @@ +package com.wm.file.entity; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import cn.afterturn.easypoi.excel.annotation.ExcelTarget; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ExcelTarget("userEntityRes") +public class UserEntityRes implements Serializable { + + private static final long serialVersionUID = -5644799954031156649L; + + @Excel(name = "主键ID") + private String id; + + @Excel(name = "姓名") + private String name; + + @Excel(name = "手机") + private String phone; + + @Excel(name = "创建人") + private String ceateBy; + + @Excel(name = "备注") + private String remark; + + /*@TableField("birthday") + @ExcelProperty(name = "生日" ,index = 5) + private Date birthday;*/ + + @Excel(name = "测试数据1") + private String test1; + + @Excel(name = "测试数据2") + private String test2; + + @Excel(name = "测试数据3") + private String test3; + + @Excel(name = "测试数据4") + private String test4; + + @Excel(name = "测试数据5") + private String test5; + + @Excel(name = "测试数据6") + private String test6; + + @Excel(name = "测试数据7") + private String test7; + + @Excel(name = "测试数据8") + private String test8; + + @Excel(name = "测试数据9") + private String test9; + + @Excel(name = "测试数据10") + private String test10; + + @Excel(name = "测试数据11") + private String test11; + + @Excel(name = "测试数据12") + private String test12; + + @Excel(name = "测试数据13") + private String test13; + + @Excel(name = "测试数据14") + private String test14; + + @Excel(name = "测试数据15") + private String test15; + + @Excel(name = "测试数据16") + private String test16; + + @Excel(name = "测试数据17") + private String test17; + + @Excel(name = "测试数据18") + private String test18; + + @Excel(name = "测试数据19") + private String test19; + + @Excel(name = "测试数据20") + private String test20; + + @Excel(name = "测试数据21") + private String test21; +} diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/mapper/UserMapper.java b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/mapper/UserMapper.java new file mode 100644 index 0000000..9917523 --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/mapper/UserMapper.java @@ -0,0 +1,17 @@ +package com.wm.file.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.wm.file.entity.UserEntity; +import org.apache.catalina.User; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +@Mapper +public interface UserMapper extends BaseMapper { + + @Select("select * from user") + List selectAll(); + +} diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/service/IAsynExportExcelService.java b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/service/IAsynExportExcelService.java new file mode 100644 index 0000000..b4d28d1 --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/service/IAsynExportExcelService.java @@ -0,0 +1,25 @@ +package com.wm.file.service; + +import com.wm.file.entity.UserEntity; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.CountDownLatch; + +/** + * @ClassName: IAsynExportExcelService + * @Description: + * @Author: xiaomage + * @Date: 2021-08-06 20:05 + **/ +public interface IAsynExportExcelService { + + /** + * 分批次异步导出数据 + * + * @param countDownLatch + */ + void excuteAsyncTask(Map map, CountDownLatch countDownLatch); + + void excuteAsyncTaskDatabase(Map poll, CountDownLatch cdl); +} diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/service/UserService.java b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/service/UserService.java new file mode 100644 index 0000000..cb23095 --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/service/UserService.java @@ -0,0 +1,13 @@ +package com.wm.file.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.wm.file.entity.UserEntity; + +import java.io.OutputStream; +import java.util.List; + +public interface UserService extends IService { + + List selectAll(Integer total,Integer limit); + +} diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/service/impl/IAsynExportExcelServiceImpl.java b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/service/impl/IAsynExportExcelServiceImpl.java new file mode 100644 index 0000000..740adde --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/service/impl/IAsynExportExcelServiceImpl.java @@ -0,0 +1,126 @@ +package com.wm.file.service.impl; + +import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; +import com.github.pagehelper.PageHelper; +import com.wm.file.entity.MsgClient; +import com.wm.file.entity.UserEntity; +import com.wm.file.mapper.UserMapper; +import com.wm.file.service.IAsynExportExcelService; +import com.wm.file.service.UserService; +import com.wm.file.util.MyExcelExportUtil; +import org.apache.poi.ss.usermodel.Workbook; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.io.File; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CountDownLatch; + +/** + * @ClassName: IAsynExportExcelServiceImpl + * @Description: + * @Author: xiaomage + * @Date: 2021-08-06 20:06 + **/ +@Service +public class IAsynExportExcelServiceImpl implements IAsynExportExcelService { + + // 假定数据量是40万,因为我系统的最大线程数是8,数据量设置太大容易内存溢出 + public static final long DATA_TOTAL_COUNT = 400000; + // 查询要导出的批次数据 + static List list = new ArrayList<>(); + + static { + for (int i = 0; i < DATA_TOTAL_COUNT; i++) { //模拟库中一百万数据量 + MsgClient client = new MsgClient(); + client.setBirthday(new Date()); + client.setClientName("小明xxxsxsxsxsxsxsxsxsxsx" + i); + client.setClientPhone("18797" + i); + client.setCreateBy("JueYue"); + client.setId("1" + i); + client.setRemark("测试" + i); + list.add(client); + } + } + + @Resource + private MyExcelExportUtil myExcelExportUtil; + + @Override + @Async("taskExecutor") + public void excuteAsyncTask(Map map, CountDownLatch cdl) { + long start = System.currentTimeMillis(); + int currentPage = (int) map.get("page"); + int pageSize = (int) map.get("limit"); + List subList = new ArrayList(page(list, pageSize, currentPage)); + int count = subList.size(); + System.out.println("线程:" + Thread.currentThread().getName() + " , 读取数据,耗时 :" + (System.currentTimeMillis() - start)); + String filePath = map.get("path").toString() + map.get("page") + ".xlsx"; + // 调用导出的文件方法 + Workbook workbook = myExcelExportUtil.getWorkbook("计算机一班学生", "学生", MsgClient.class, subList, ExcelType.XSSF); + File file = new File(filePath); + MyExcelExportUtil.exportExcel2(workbook, file); + long end = System.currentTimeMillis(); + System.out.println("线程:" + Thread.currentThread().getName() + " , 导出excel" + map.get("page") + ".xlsx成功 , 导出数据:" + count + " ,耗时 :" + (end - start) + "ms"); + // 执行完线程数减1 + cdl.countDown(); + System.out.println("剩余任务数 ===========================> " + cdl.getCount()); + } + + @Autowired + private UserMapper userMapper; + + @Override + @Async("taskExecutor") + public void excuteAsyncTaskDatabase(Map map, CountDownLatch cdl) { + long start = System.currentTimeMillis(); + int currentPage = (int) map.get("page"); + int pageSize = (int) map.get("limit"); + PageHelper.startPage(currentPage,pageSize); + List userEntityList = userMapper.selectAll(); + int count = userEntityList.size(); + System.out.println("线程:" + Thread.currentThread().getName() + " , 读取数据,耗时 :" + (System.currentTimeMillis() - start)); + String filePath = map.get("path").toString() + map.get("page") + ".xlsx"; + // 调用导出的文件方法 + Workbook workbook = myExcelExportUtil.getWorkbook("计算机一班学生", "学生", UserEntity.class, userEntityList, ExcelType.XSSF); + File file = new File(filePath); + MyExcelExportUtil.exportExcel2(workbook, file); + long end = System.currentTimeMillis(); + System.out.println("线程:" + Thread.currentThread().getName() + " , 导出excel" + map.get("page") + ".xlsx成功 , 导出数据:" + count + " ,耗时 :" + (end - start) + "ms"); + // 执行完线程数减1 + cdl.countDown(); + System.out.println("剩余任务数 ===========================> " + cdl.getCount()); + } + + // 手动分页方法 + public List page(List list, int pageSize, int page) { + int totalcount = list.size(); + int pagecount = 0; + int m = totalcount % pageSize; + if (m > 0) { + pagecount = totalcount / pageSize + 1; + } else { + pagecount = totalcount / pageSize; + } + List subList = new ArrayList<>(); + if (pagecount < page) { + return subList; + } + + if (m == 0) { + subList = list.subList((page - 1) * pageSize, pageSize * (page)); + } else { + if (page == pagecount) { + subList = list.subList((page - 1) * pageSize, totalcount); + } else { + subList = list.subList((page - 1) * pageSize, pageSize * (page)); + } + } + return subList; + } +} diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/service/impl/IExcelExportServerImpl.java b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/service/impl/IExcelExportServerImpl.java new file mode 100644 index 0000000..ec3e952 --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/service/impl/IExcelExportServerImpl.java @@ -0,0 +1,43 @@ +package com.wm.file.service.impl; + +import cn.afterturn.easypoi.handler.inter.IExcelExportServer; +import com.wm.file.entity.MsgClient; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @ClassName: IExcelExportServerImpl + * @Description: 查询指定页码的数据 + * @Author: xiaomage + * @Date: 2021-07-24 19:23 + **/ +@Service +public class IExcelExportServerImpl implements IExcelExportServer { + @Override + public List selectListForExcelExport(Object obj, int page) { + // 在数据库中查询出数据集合 + //此处可以写dao层分页查询的实现方法,page为当前第几页,分批次循环查询导入数据至excel中 + //obj:查询条件,page:当前第几页,pageSize:每页条数 + //List testList = dao.xxx(obj,page,pageSize); + int pageSize = 100000; + List list = new ArrayList<>(); + for (int i = 0; i < 1000000; i++) { //测试数据 + MsgClient client = new MsgClient(); + client.setBirthday(new Date()); + client.setClientName("小明" + i); + client.setClientPhone("18797" + i); + client.setCreateBy("JueYue"); + client.setId("1" + i); + client.setRemark("测试" + i); + list.add(client); + } + List partList = new ArrayList(); + if (page * pageSize <= 100000) { + partList = list.subList((page - 1) * pageSize, page * pageSize); + } + return partList; + } +} diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/service/impl/UserServiceImpl.java b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/service/impl/UserServiceImpl.java new file mode 100644 index 0000000..636a854 --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/service/impl/UserServiceImpl.java @@ -0,0 +1,96 @@ +package com.wm.file.service.impl; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.pagehelper.PageHelper; +import com.wm.file.entity.UserEntity; +import com.wm.file.mapper.UserMapper; +import com.wm.file.service.UserService; +import com.wm.file.util.SpringUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.io.IOException; +import java.io.OutputStream; +import java.util.*; +import java.util.concurrent.*; + +@Service +public class UserServiceImpl extends ServiceImpl implements UserService { + /** + * 每批次处理的数据量 + */ + private static final int LIMIT = 40000; + // Queue是java自己的队列,是同步安全的 + public static Queue> queue; + + static { + // 一个基于链接节点的无界线程安全的队列 + queue = new ConcurrentLinkedQueue<>(); + } + @Autowired + private UserMapper userMapper; + + @Resource(name = "taskExecutor") + private ThreadPoolExecutor threadPoolExecutor; + + @Override + public List selectAll(Integer total,Integer limit) { + long start = System.currentTimeMillis(); + List myCallableTsks = new ArrayList<>(); + // 计算出多少页,即循环次数 + int count = total / limit + (total % limit > 0 ? 1 : 0); + System.out.println("本次任务量: "+count); + CountDownLatch cd = new CountDownLatch(count); + for (int i = 1; i <= count; i++) { + myCallableTsks.add(new MyCallableTsk(i,limit,cd)); + } + List userEntityList = new ArrayList<>(); + try { + List>> futures = threadPoolExecutor.invokeAll(myCallableTsks); + for (Future> future : futures) { + userEntityList.addAll(future.get()); + } + } catch (InterruptedException | ExecutionException e) { + e.printStackTrace(); + } + long end = System.currentTimeMillis(); + System.out.println("主线程:" + Thread.currentThread().getName() + " , 导出指定数据成功 , 共导出数据:" + userEntityList.size() + " ,查询数据任务执行完毕共消耗时 :" + (end - start) + "ms"); + return userEntityList; + } + + + + + + + class MyCallableTsk implements Callable>{ + private UserMapper userMapper; + private CountDownLatch cd; + + private Integer pageNum; + private Integer pageSize; + + public MyCallableTsk(Integer pageNum,Integer pageSize,CountDownLatch cd){ + this.pageNum =pageNum; + this.pageSize =pageSize; + this.cd=cd; + } + @Override + public List call() throws Exception { + System.out.println("线程:" + Thread.currentThread().getName() + " , 开始读取数据------"); + long start = System.currentTimeMillis(); + userMapper = (UserMapper) SpringUtil.getBean("userMapper"); + PageHelper.startPage(pageNum,pageSize); + List userEntityList = UserServiceImpl.this.userMapper.selectAll(); + System.out.println("线程:" + Thread.currentThread().getName() + " , 读取数据 "+userEntityList.size()+",页数:"+pageNum+ "耗时 :" + (System.currentTimeMillis() - start)+ "ms"); + cd.countDown(); + System.out.println("剩余任务数 ===========================> " + cd.getCount()); + return userEntityList; + } + } +} diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/AsynExcelExportUtil.java b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/AsynExcelExportUtil.java new file mode 100644 index 0000000..f7a38f5 --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/AsynExcelExportUtil.java @@ -0,0 +1,125 @@ +package com.wm.file.util; + +import com.wm.file.service.IAsynExportExcelService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileOutputStream; +import java.util.HashMap; +import java.util.Map; +import java.util.Queue; +import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.CountDownLatch; + +import static com.wm.file.service.impl.IAsynExportExcelServiceImpl.DATA_TOTAL_COUNT; + + +/** + * @ClassName:AsynExcelExportUtil + * @Description: 多线程批量导出excel工具类 + * @Author:xiaomage + * @Date:2021/8/8 23:00 + **/ +@Slf4j +@Component +public class AsynExcelExportUtil { + + // 定义导出的excel文件保存的路径 + private String filePath = "C:\\Users\\Administrator\\Desktop\\execl\\"; + @Resource + private IAsynExportExcelService asynExportExcelService; + /** + * 每批次处理的数据量 + */ + private static final int LIMIT = 40000; + // Queue是java自己的队列,是同步安全的 + public static Queue> queue; + + static { + // 一个基于链接节点的无界线程安全的队列 + queue = new ConcurrentLinkedQueue<>(); + } + + /** + * 多线程批量导出 excel + * + * @param response 用于浏览器下载 + * @throws InterruptedException + */ + public void threadExcel(HttpServletResponse response) throws InterruptedException { + long start = System.currentTimeMillis(); + initQueue(); + //异步转同步,等待所有线程都执行完毕返回 主线程才会结束 + try { + CountDownLatch cdl = new CountDownLatch(queue.size()); + while (queue.size() > 0) { + asynExportExcelService.excuteAsyncTask(queue.poll(), cdl); + } + cdl.await(); + System.out.println("excel导出完成·······················"); + //压缩文件 + File zipFile = new File(filePath.substring(0, filePath.length() - 1) + ".zip"); + FileOutputStream fos1 = new FileOutputStream(zipFile); + //压缩文件目录 + ZipUtils.toZip(filePath, fos1, true); + //发送zip包 + ZipUtils.sendZip(response, zipFile); + } catch (Exception e) { + e.printStackTrace(); + } + long end = System.currentTimeMillis(); + System.out.println("任务执行完毕共消耗: " + (end - start) + "ms"); + } + + /** + * 多线程批量导出 excel + * + * @param response 用于浏览器下载 + * @throws InterruptedException + */ + public void threadExcelDatabase(HttpServletResponse response) throws InterruptedException { + long start = System.currentTimeMillis(); + initQueue(); + //异步转同步,等待所有线程都执行完毕返回 主线程才会结束 + try { + CountDownLatch cdl = new CountDownLatch(queue.size()); + while (queue.size() > 0) { + asynExportExcelService.excuteAsyncTaskDatabase(queue.poll(), cdl); + } + cdl.await(); + System.out.println("excel导出完成·······················"); + //压缩文件 + File zipFile = new File(filePath.substring(0, filePath.length() - 1) + ".zip"); + FileOutputStream fos1 = new FileOutputStream(zipFile); + //压缩文件目录 + ZipUtils.toZip(filePath, fos1, true); + //发送zip包 + ZipUtils.sendZip(response, zipFile); + } catch (Exception e) { + e.printStackTrace(); + } + long end = System.currentTimeMillis(); + System.out.println("任务执行完毕共消耗: " + (end - start) + "ms"); + } + + /** + * 初始化队列 + */ + public void initQueue() { + long dataTotalCount = DATA_TOTAL_COUNT;// 数据的总数 + int listCount = (int) dataTotalCount; + // 计算出多少页,即循环次数 + int count = listCount / LIMIT + (listCount % LIMIT > 0 ? 1 : 0); + for (int i = 1; i <= count; i++) { + Map map = new HashMap<>(); + map.put("page", i); + map.put("limit", LIMIT); + map.put("path", filePath); + //添加元素 + queue.offer(map); + } + } +} diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/MyExcelExportUtil.java b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/MyExcelExportUtil.java new file mode 100644 index 0000000..1d1a053 --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/MyExcelExportUtil.java @@ -0,0 +1,197 @@ +package com.wm.file.util; + +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.ExportParams; +import cn.afterturn.easypoi.excel.entity.TemplateExportParams; +import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; +import cn.afterturn.easypoi.handler.inter.IExcelExportServer; +import com.wm.file.util.easypoi.ExcelStyleUtil; +import com.wm.file.util.easypoi.MyExcelExportService; +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.streaming.SXSSFWorkbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * @ClassName: ExcelExportUtil + * @Description: Excel导出工具类 + * @Author: xiaomage + * @Date: 2021-07-24 18:47 + **/ +@Slf4j +@Component +public class MyExcelExportUtil { + @Resource + private IExcelExportServer excelExportServer; + /** + * 小量数据允许导出的最大条数 + */ + private static final Integer EXPORT_EXCEL_BASE_MAX_NUM = 100000; + public static int USE_SXSSF_LIMIT = 100000; + + /** + * 获取导出的 Workbook对象 + * 普通导出 + * + * @param title 大标题 + * @param sheetName 页签名 + * @param object 导出实体 + * @param list 普通导出传入的数据集合 + * @param list 数据集合 + * @return Workbook + */ + public static Workbook getWorkbook(String title, String sheetName, Class object, List list, ExcelType excelType) { + // 判断导出数据是否为空 + if (list == null) { + list = new ArrayList<>(); + } + // 判断导出数据数量是否超过限定值 +// if (list.size() > EXPORT_EXCEL_BASE_MAX_NUM) { +// title = "导出数据行数超过:" + EXPORT_EXCEL_BASE_MAX_NUM + "条,无法导出!"; +// list = new ArrayList<>(); +// } + // 获取导出参数 + ExportParams exportParams = new ExportParams(title, sheetName, excelType); + // 设置导出样式 + exportParams.setStyle(ExcelStyleUtil.class); + // 设置行高 + exportParams.setHeight((short) 8); + // 普通导出,输出Workbook流 +// return ExcelExportUtil.exportExcel(exportParams, object, list); + return createExcel(exportParams, object, list); + } + + /** + * 导出大数据量 + * + * @param title + * @param sheetName + * @param object + * @param queryParams 大数据量导出,查询数据的参数条件 + * @param excelType + * @return + */ + public Workbook getWorkbook(String title, String sheetName, Class object, Object queryParams, ExcelType excelType) { + // 获取导出参数 + ExportParams exportParams = new ExportParams(title, sheetName, excelType); + // 设置导出样式 + exportParams.setStyle(ExcelStyleUtil.class); + // 设置行高 + exportParams.setHeight((short) 6); + // 导出大数据量,输出Workbook流 + return ExcelExportUtil.exportBigExcel(exportParams, object, excelExportServer, queryParams); + } + + /** + * 获取导出的 Workbook对象 + * + * @param path 模板路径 + * @param map 导出内容map + * @return Workbook + */ + public static Workbook getWorkbook(String path, Map map) { + // 获取导出模板 + TemplateExportParams params = new TemplateExportParams(path); + // 设置导出样式 + params.setStyle(ExcelStyleUtil.class); + // 输出Workbook流 + return ExcelExportUtil.exportExcel(params, map); + } + + /** + * 导出Excel + * + * @param workbook workbook流 + * @param fileName 文件名 + * @param response 响应 + */ + public static void exportExcel(Workbook workbook, String fileName, HttpServletResponse response) { + // 输出文件 + try (OutputStream out = response.getOutputStream()) { + // 获取文件名并转码 + String name = URLEncoder.encode(fileName, "UTF-8"); + // 编码 + response.setCharacterEncoding("UTF-8"); + // 设置强制下载不打开 + response.setContentType("application/force-download"); + // 下载文件的默认名称 + response.setHeader("Content-Disposition", "attachment;filename=" + name + ".xlsx"); + // 输出表格 + workbook.write(out); + } catch (IOException e) { + log.error("文件导出异常,详情如下:", e); + throw new RuntimeException("文件导出异常"); + } finally { + try { + if (workbook != null) { + // 关闭输出流 + workbook.close(); + } + } catch (IOException e) { + log.error("文件导出异常,详情如下:", e); + } + } + } + + public static void exportExcel2(Workbook workbook, File file) { + FileOutputStream out = null; + try { + out = new FileOutputStream(file); + // 输出表格 + workbook.write(out); + } catch (IOException e) { + log.error("文件导出异常,详情如下:", e); + throw new RuntimeException("文件导出异常"); + } finally { + try { + if (workbook != null) { + // 关闭输出流 + workbook.close(); + } + if (out != null) { + // 关闭输出流 + out.close(); + } + } catch (IOException e) { + log.error("文件导出异常,详情如下:", e); + } + } + } + + + /** + * 生成Workbook + * + * @param entity + * @param pojoClass + * @param dataSet + * @return + */ + public static Workbook createExcel(ExportParams entity, Class pojoClass, Collection dataSet) { + Workbook workbook = getWorkbook(entity.getType(), dataSet.size()); + (new MyExcelExportService()).createSheet(workbook, entity, pojoClass, dataSet); + return workbook; + } + + private static Workbook getWorkbook(ExcelType type, int size) { + if (ExcelType.HSSF.equals(type)) { + return new HSSFWorkbook(); + } else { + return size < USE_SXSSF_LIMIT ? new XSSFWorkbook() : new SXSSFWorkbook(); + } + } +} diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/PoiSXSSFWorkbookExcel.java b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/PoiSXSSFWorkbookExcel.java new file mode 100644 index 0000000..b42f758 --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/PoiSXSSFWorkbookExcel.java @@ -0,0 +1,223 @@ +package com.wm.file.util; + +import java.io.IOException; +import java.util.List; + +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Font; +import org.apache.poi.ss.usermodel.HorizontalAlignment; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.VerticalAlignment; +import org.apache.poi.xssf.streaming.SXSSFWorkbook; +import org.apache.poi.xssf.usermodel.XSSFCellStyle; + +/** +* + + @ClassName: PoiSXSSFWorkbookExcel.java + @Description: 导出Excel 采用SXSSFWorkbook实现方式 excel为07之后版本,只支持.xlsx格式 + @author: l + +*/ +public class PoiSXSSFWorkbookExcel { + +/** + * 导出到单个sheet页中 + * @param title + * 标题 + * @param List> result + * 导出数据内容 + * @return wb + * SXSSFWorkbook对象 + * @throws IOException + * + */ + +public static SXSSFWorkbook getSxssfwbExcel(String sheetTitle,String[] title, List> result) { + SXSSFWorkbook wb = new SXSSFWorkbook(); + //int sheetNum = 0;// 记录额外创建的sheet数量 + Sheet sheet = wb.createSheet(sheetTitle); + // wb.setSheetName(sheetNum, sheetTitle+sheetNum); + int rownum = 0; + Row row = sheet.createRow(rownum); + + // 设置并获取到需要的样式 + XSSFCellStyle xssfCellStyleHeader = getAndSetXSSFCellStyleHeader(wb); + + Cell cell; + // 创建标题,此时row=0,即第一行 + for (int j = 0; j < title.length; j++) { + cell = row.createCell(j); + cell.setCellValue(title[j]); + cell.setCellStyle(xssfCellStyleHeader); + } + + // 遍历集合数据,创建excel内容,产生数据行 + if (result != null) { + int index = 1; + List m = null; + for (int i = 0; i < result.size(); i++) { + row = sheet.createRow(index); + int cellIndex = 0; + m = result.get(i); + for (String str : m) { + row.createCell((short) cellIndex).setCellValue(str); + cellIndex++; + } + + index++; + } + } + + + return wb; +} + + + +/** + * 每个sheet页导出不同内容到多个sheet页中,每个sheet页表头内容不相同 + * + * @param wb + * SXSSFWorkbook对象 + * @param sheetNum + * sheet页 + * @param sheetTitle + * sheet页名称 + * @param title + * 标题 + * @param List> result + * 导出数据内容 + * @return wb + * SXSSFWorkbook对象 + * @throws IOException + * + */ + +public static SXSSFWorkbook getSxssfwbManyDiffSheets(SXSSFWorkbook wb, int sheetNum, String sheetTitle, + String[] title, List> result) { + + Sheet sheet = wb.createSheet(); + wb.setSheetName(sheetNum, sheetTitle); + int rownum = 0; + Row row = sheet.createRow(rownum); + + // 设置并获取到需要的样式 + XSSFCellStyle xssfCellStyleHeader = getAndSetXSSFCellStyleHeader(wb); + + Cell cell; + // 创建标题,此时row=0,即第一行 + for (int j = 0; j < title.length; j++) { + cell = row.createCell(j); + cell.setCellValue(title[j]); + cell.setCellStyle(xssfCellStyleHeader); + } + + // 遍历集合数据,创建excel内容,产生数据行 + if (result != null) { + int index = 1; + List m = null; + for (int i = 0; i < result.size(); i++) { + row = sheet.createRow(index); + int cellIndex = 0; + m = result.get(i); + for (String str : m) { + row.createCell((short) cellIndex).setCellValue(str); + cellIndex++; + } + + index++; + } + } + + + return wb; +} + + + + +/** + * 每个sheet页导出相同内容到多个sheet页中,每个sheet页表头内容相同 + * 每个sheet页目前总数设置为n,这里设置n=60000 + * @param title + * 标题 + * @param List> result + * 导出数据内容 + * @return wb + * SXSSFWorkbook对象 + * @throws IOException + * + */ + +public static SXSSFWorkbook getSxssfwbManySameSheets(String sheetTitle,String[] title, List> result) { + SXSSFWorkbook wb = new SXSSFWorkbook(); + int sheetNum = 0;// 记录额外创建的sheet数量 + Sheet sheet = wb.createSheet(sheetTitle + sheetNum); + // wb.setSheetName(sheetNum, sheetTitle+sheetNum); + int rownum = 0; + Row row = sheet.createRow(rownum); + + // 设置并获取到需要的样式 + XSSFCellStyle xssfCellStyleHeader = getAndSetXSSFCellStyleHeader(wb); + + Cell cell; + // 创建标题,此时row=0,即第一行 + for (int j = 0; j < title.length; j++) { + cell = row.createCell(j); + cell.setCellValue(title[j]); + cell.setCellStyle(xssfCellStyleHeader); + } + + // 遍历集合数据,创建excel内容,产生数据行 + if (result != null) { + List m = null; + for (int i = 0; i < result.size(); i++) { + if ((i + 1) % 60000 == 0) { + sheetNum++; + sheet = wb.createSheet(sheetTitle + sheetNum); + row = sheet.createRow(0); + // 声明列对象,参数为列索引,可以是0~255之间的任何一个 + // 创建标题,此时row=0,即第一行 + for (int j = 0; j < title.length; j++) { + cell = row.createCell(j); + cell.setCellValue(title[j]); + cell.setCellStyle(xssfCellStyleHeader); + } + } + row = sheet.createRow((i + 1) - (sheetNum * 60000)+sheetNum); + int cellIndex = 0; + m = result.get(i); + for (String str : m) { + row.createCell((short) cellIndex).setCellValue(str); + cellIndex++; + } + } + } + return wb; +} + + +/** + * 获取并设置header样式 + */ +private static XSSFCellStyle getAndSetXSSFCellStyleHeader(SXSSFWorkbook sxssfWorkbook) { + XSSFCellStyle xssfCellStyle = (XSSFCellStyle) sxssfWorkbook.createCellStyle(); + Font font = sxssfWorkbook.createFont(); + // 字体大小 + font.setFontHeightInPoints((short) 14); + // 字体粗细 + //font.setFontName("楷体"); + // 将字体应用到样式上面 + xssfCellStyle.setFont(font); + // 是否自动换行 + xssfCellStyle.setWrapText(false); + // 水平居中 + xssfCellStyle.setAlignment(HorizontalAlignment.CENTER); + // 垂直居中 + xssfCellStyle.setVerticalAlignment(VerticalAlignment.CENTER); + return xssfCellStyle; +} + +} \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/SpringUtil.java b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/SpringUtil.java new file mode 100644 index 0000000..95e32fb --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/SpringUtil.java @@ -0,0 +1,75 @@ +package com.wm.file.util; + +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.NoSuchBeanDefinitionException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; +/** + * @author xiaomage + * @Title: + * @Description: + * @Email:1625017540@qq.com + * @date 2018/12/3 21:57 + * @Version 1.0 + */ +@Component +public class SpringUtil implements ApplicationContextAware { + private static ApplicationContext applicationContext = null; + + public SpringUtil() { + } + + public void setApplicationContext(ApplicationContext arg0) throws BeansException { + if (applicationContext == null) { + applicationContext = arg0; + } + + } + + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + + public static void setAppCtx(ApplicationContext webAppCtx) { + if (webAppCtx != null) { + applicationContext = webAppCtx; + } + } + + /** + * 拿到ApplicationContext对象实例后就可以手动获取Bean的注入实例对象 + */ + public static T getBean(Class clazz) { + return getApplicationContext().getBean(clazz); + } + + public static T getBean(String name, Class clazz) throws ClassNotFoundException { + return getApplicationContext().getBean(name, clazz); + } + + public static final Object getBean(String beanName) { + return getApplicationContext().getBean(beanName); + } + + public static final Object getBean(String beanName, String className) throws ClassNotFoundException { + Class clz = Class.forName(className); + return getApplicationContext().getBean(beanName, clz.getClass()); + } + + public static boolean containsBean(String name) { + return getApplicationContext().containsBean(name); + } + + public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException { + return getApplicationContext().isSingleton(name); + } + + public static Class getType(String name) throws NoSuchBeanDefinitionException { + return getApplicationContext().getType(name); + } + + public static String[] getAliases(String name) throws NoSuchBeanDefinitionException { + return getApplicationContext().getAliases(name); + } +} \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/ZipUtils.java b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/ZipUtils.java new file mode 100644 index 0000000..cd91d66 --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/ZipUtils.java @@ -0,0 +1,183 @@ +package com.wm.file.util; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.List; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + +/** + * @ClassName: ZipUtils + * @Description: + * @Author: xiaomage + * @Date: 2021-08-06 20:33 + **/ +@Component +@Slf4j +public class ZipUtils { + private static final int BUFFER_SIZE = 2 * 1024; + + /** + * 压缩成ZIP 方法 + * @param srcDir 压缩文件夹路径 + * @param out 压缩文件输出流 + * @param KeepDirStructure 是否保留原来的目录结构,true:保留目录结构; + * false:所有文件跑到压缩包根目录下(注意:不保留目录结构可能会出现同名文件,会压缩失败) + * @throws RuntimeException 压缩失败会抛出运行时异常 + */ + public static void toZip(String srcDir, OutputStream out, boolean KeepDirStructure) + throws RuntimeException { + log.info("正在压缩文件。。。"); + long start = System.currentTimeMillis(); + ZipOutputStream zos = null; + try { + zos = new ZipOutputStream(out); + File sourceFile = new File(srcDir); + compress(sourceFile, zos, sourceFile.getName(), KeepDirStructure); + long end = System.currentTimeMillis(); + log.info("压缩完成,耗时:" + (end - start) + " ms"); + } catch (Exception e) { + throw new RuntimeException("zip error from ZipUtils", e); + } finally { + if (zos != null) { + try { + zos.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + } + + /** + * 压缩成ZIP 方法 * @param srcFiles 需要压缩的文件列表 + * + * @param out 压缩文件输出流 + * @throws RuntimeException 压缩失败会抛出运行时异常 + */ + public static void toZip(List srcFiles, OutputStream out) throws RuntimeException { + long start = System.currentTimeMillis(); + ZipOutputStream zos = null; + try { + zos = new ZipOutputStream(out); + for (File srcFile : srcFiles) { + byte[] buf = new byte[BUFFER_SIZE]; + zos.putNextEntry(new ZipEntry(srcFile.getName())); + int len; + FileInputStream in = new FileInputStream(srcFile); + while ((len = in.read(buf)) != -1) { + zos.write(buf, 0, len); + } + zos.closeEntry(); + in.close(); + } + long end = System.currentTimeMillis(); + System.out.println("压缩完成,耗时:" + (end - start) + " ms"); + } catch (Exception e) { + throw new RuntimeException("zip error from ZipUtils", e); + } finally { + if (zos != null) { + try { + zos.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } + + + /** + * 递归压缩方法 + * + * @param sourceFile 源文件 + * @param zos zip输出流 + * @param name 压缩后的名称 + * @param KeepDirStructure 是否保留原来的目录结构,true:保留目录结构; + * false:所有文件跑到压缩包根目录下(注意:不保留目录结构可能会出现同名文件,会压缩失败) + * @throws Exception + */ + private static void compress(File sourceFile, ZipOutputStream zos, String name, + boolean KeepDirStructure) throws Exception { + byte[] buf = new byte[BUFFER_SIZE]; + if (sourceFile.isFile()) { + // 向zip输出流中添加一个zip实体,构造器中name为zip实体的文件的名字 + zos.putNextEntry(new ZipEntry(name)); + // copy文件到zip输出流中 + int len; + FileInputStream in = new FileInputStream(sourceFile); + while ((len = in.read(buf)) != -1) { + zos.write(buf, 0, len); + } + // Complete the entry + zos.closeEntry(); + in.close(); + } else { + //是文件夹 + File[] listFiles = sourceFile.listFiles(); + if (listFiles == null || listFiles.length == 0) { + // 需要保留原来的文件结构时,需要对空文件夹进行处理 + if (KeepDirStructure) { + // 空文件夹的处理 + zos.putNextEntry(new ZipEntry(name + "/")); + // 没有文件,不需要文件的copy + zos.closeEntry(); + } + } else { + for (File file : listFiles) { + // 判断是否需要保留原来的文件结构 + if (KeepDirStructure) { + // 注意:file.getName()前面需要带上父文件夹的名字加一斜杠, + // 不然最后压缩包中就不能保留原来的文件结构,即:所有文件都跑到压缩包根目录下了 + compress(file, zos, name + "/" + file.getName(), KeepDirStructure); + } else { + compress(file, zos, file.getName(), KeepDirStructure); + } + + } + } + } + } + + /** + * 向浏览器发送zip包 + * + * @param response + */ + public static void sendZip(HttpServletResponse response, File zipFile) { + log.info("正在发送zip包"); + OutputStream outputStream = null; + BufferedInputStream fis = null; + try { + // 以流的形式下载文件。 + fis = new BufferedInputStream(new FileInputStream(zipFile.getPath())); + byte[] buffer = new byte[fis.available()]; + fis.read(buffer); + // 清空response + response.reset(); + outputStream = new BufferedOutputStream(response.getOutputStream()); + response.setContentType("application/octet-stream"); + response.setHeader("Content-Disposition", "attachment;filename=" + new String(zipFile.getName().getBytes("UTF-8"), "ISO-8859-1")); + outputStream.write(buffer); + outputStream.flush(); + log.info("发送成功。"); + } catch (Exception ex) { + ex.printStackTrace(); + } finally { + try { + if (fis != null) { + fis.close(); + } + if (outputStream != null) { + outputStream.close(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } +} diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/easypoi/ExcelStyleUtil.java b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/easypoi/ExcelStyleUtil.java new file mode 100644 index 0000000..3bb15b3 --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/easypoi/ExcelStyleUtil.java @@ -0,0 +1,193 @@ +package com.wm.file.util.easypoi; + +import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; +import cn.afterturn.easypoi.excel.entity.params.ExcelForEachParams; +import cn.afterturn.easypoi.excel.export.styler.IExcelExportStyler; +import org.apache.poi.ss.usermodel.*; + +/** + * @ClassName: ExcelStyleUtil + * @Description: Excel样式设置 + * @Author: WM + * @Date: 2021-07-24 18:23 + **/ +public class ExcelStyleUtil implements IExcelExportStyler { + + private static final short STRING_FORMAT = (short) BuiltinFormats.getBuiltinFormat("TEXT"); + private static final short FONT_SIZE_TEN = 10; + private static final short FONT_SIZE_ELEVEN = 11; + private static final short FONT_SIZE_TWELVE = 12; + + // 标题头样式 + private CellStyle headerStyle; + // 数据列标题样式 + private CellStyle titleStyle; + // 数据行样式 + private CellStyle styles; + + public ExcelStyleUtil(Workbook workbook) { + this.init(workbook); + } + + /** + * 初始化样式 + * + * @param workbook + */ + private void init(Workbook workbook) { + this.headerStyle = initHeaderStyle(workbook); + this.titleStyle = initTitleStyle(workbook); + this.styles = initStyles(workbook); + } + + /** + * 标题头样式 + * + * @param color + * @return + */ + @Override + public CellStyle getHeaderStyle(short color) { + return headerStyle; + } + + /** + * 数据列标题样式 + * + * @param color + * @return + */ + @Override + public CellStyle getTitleStyle(short color) { + return titleStyle; + } + + /** + * 数据行样式 + * + * @param parity 表示奇偶行 + * @param excelExportEntity 数据内容 + * @return + */ + @Override + public CellStyle getStyles(boolean parity, ExcelExportEntity excelExportEntity) { + return styles; + } + + /** + * 数据行样式 + * + * @param cell 单元格 + * @param dataRow 数据行 + * @param excelExportEntity 数据内容 + * @param obj 对象 + * @param data 数据 + * @return + */ + @Override + public CellStyle getStyles(Cell cell, int dataRow, ExcelExportEntity excelExportEntity, Object obj, Object data) { + return getStyles(true, excelExportEntity); + } + + /** + * 模板使用的样式设置 + * + * @param b + * @param excelForEachParams + * @return + */ + @Override + public CellStyle getTemplateStyles(boolean b, ExcelForEachParams excelForEachParams) { + return null; + } + + /** + * 初始化--标题头样式 + * + * @param workbook + * @return + */ + private CellStyle initHeaderStyle(Workbook workbook) { + CellStyle style = getBaseCellStyle(workbook); + style.setFont(getFont(workbook, FONT_SIZE_TWELVE, true)); + return style; + } + + /** + * 初始化--数据列标题样式 + * + * @param workbook + * @return + */ + private CellStyle initTitleStyle(Workbook workbook) { + CellStyle style = getBaseCellStyle(workbook); + style.setFont(getFont(workbook, FONT_SIZE_ELEVEN, false)); + // 背景色 + style.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + return style; + } + + /** + * 初始化--数据行样式 + * + * @param workbook + * @return + */ + private CellStyle initStyles(Workbook workbook) { + CellStyle style = getBaseCellStyle(workbook); + style.setFont(getFont(workbook, FONT_SIZE_TEN, false)); + style.setDataFormat(STRING_FORMAT); + return style; + } + + /** + * 基础样式 + * + * @return + */ + private CellStyle getBaseCellStyle(Workbook workbook) { + CellStyle style = workbook.createCellStyle(); + // 下边框 + style.setBorderBottom(BorderStyle.THIN); + // 左边框 + style.setBorderLeft(BorderStyle.THIN); + // 上边框 + style.setBorderTop(BorderStyle.THIN); + // 右边框 + style.setBorderRight(BorderStyle.THIN); + // 水平居中 + style.setAlignment(HorizontalAlignment.CENTER); + // 上下居中 + style.setVerticalAlignment(VerticalAlignment.CENTER); + // 设置自动换行 + style.setWrapText(true); + + return style; + } + + /** + * 字体样式 + * + * @param size 字体大小 + * @param isBold 是否加粗 + * @return + */ + private Font getFont(Workbook workbook, short size, boolean isBold) { + Font font = workbook.createFont(); + // 字体样式 + font.setFontName("宋体"); + // 是否加粗 + font.setBold(isBold); + // 字体大小 + font.setFontHeightInPoints(size); + return font; + } + +// private void setSheet(Workbook workbook, int width) { +// Sheet sheet = workbook.createSheet(); +// //设置单元格列宽度 +// sheet.autoSizeColumn(0); +// sheet.setColumnWidth(0, 7000); +// } +} diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/easypoi/MyExcelExportService.java b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/easypoi/MyExcelExportService.java new file mode 100644 index 0000000..75c45be --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/java/com/wm/file/util/easypoi/MyExcelExportService.java @@ -0,0 +1,55 @@ +package com.wm.file.util.easypoi; + +import cn.afterturn.easypoi.excel.annotation.ExcelEntity; +import cn.afterturn.easypoi.excel.annotation.ExcelTarget; +import cn.afterturn.easypoi.excel.entity.ExportParams; +import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; +import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; +import cn.afterturn.easypoi.excel.export.ExcelExportService; +import cn.afterturn.easypoi.exception.excel.ExcelExportException; +import cn.afterturn.easypoi.exception.excel.enums.ExcelExportEnum; +import cn.afterturn.easypoi.util.PoiPublicUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.usermodel.Workbook; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * @ClassName: MyExcelExportService + * @Description: + * @Author: WM + * @Date: 2021-07-30 16:54 + **/ +@Slf4j +public class MyExcelExportService { + + private static double EXCEL_WIDTH = 25.0D; + + public void createSheet(Workbook workbook, ExportParams entity, Class pojoClass, Collection dataSet) { + if (log.isDebugEnabled()) { + log.debug("Excel export start ,class is {}", pojoClass); + log.debug("Excel version is {}", entity.getType().equals(ExcelType.HSSF) ? "03" : "07"); + } + + if (workbook != null && entity != null && pojoClass != null && dataSet != null) { + try { + List excelParams = new ArrayList(); + Field[] fileds = PoiPublicUtil.getClassFields(pojoClass); + ExcelTarget etarget = pojoClass.getAnnotation(ExcelTarget.class); + String targetId = etarget == null ? null : etarget.value(); + ExcelExportService excelExportService = new ExcelExportService(); + excelExportService.getAllExcelField(entity.getExclusions(), targetId, fileds, excelParams, pojoClass, null, (ExcelEntity) null); + excelParams.stream().forEach(x -> x.setWidth(EXCEL_WIDTH)); + excelExportService.createSheetForMap(workbook, entity, excelParams, dataSet); + } catch (Exception var9) { + log.error(var9.getMessage(), var9); + throw new ExcelExportException(ExcelExportEnum.EXPORT_ERROR, var9.getCause()); + } + } else { + throw new ExcelExportException(ExcelExportEnum.PARAMETER_ERROR); + } + } +} diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/resources/application.properties b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/resources/application.properties new file mode 100644 index 0000000..ddc62e9 --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/resources/application.properties @@ -0,0 +1,12 @@ +spring.datasource.url=jdbc:mysql://127.0.0.1:3306/execldemo +spring.datasource.username=root +spring.datasource.password=root +spring.datasource.driver-class-name=com.mysql.jdbc.Driver + + +#mybatis-plus.configuration.log-impl: org.apache.ibatis.logging.stdout.StdOutImpl +mybatis-plus.configuration.map-underscore-to-camel-case: true + + + +# þǽ»ߵıֶӳΪշʽʵ \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/resources/com/wm/file/mapper/UserMapper b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/resources/com/wm/file/mapper/UserMapper new file mode 100644 index 0000000..60e2b35 --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/main/resources/com/wm/file/mapper/UserMapper @@ -0,0 +1,10 @@ + + + + + + + + \ No newline at end of file diff --git a/MultithreadedExportExcelData-master/ReadedExportExcelData/src/test/java/com/wm/file/TestDemo.java b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/test/java/com/wm/file/TestDemo.java new file mode 100644 index 0000000..f1ca192 --- /dev/null +++ b/MultithreadedExportExcelData-master/ReadedExportExcelData/src/test/java/com/wm/file/TestDemo.java @@ -0,0 +1,117 @@ +package com.wm.file; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.wm.file.entity.MsgClient; +import com.wm.file.entity.UserEntity; +import com.wm.file.mapper.UserMapper; +import com.wm.file.service.UserService; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = ExportExcelDataApplication.class)//springboot注解 +public class TestDemo { + @Autowired + private UserService userService; + + @Autowired + private UserMapper userMapper; + @Test + public void test1(){ + List userEntityList = new ArrayList<>(); + for (int i = 0; i < 200000; i++) { //测试数据 + UserEntity client = new UserEntity(); + //client.setBirthday(new Date()); + client.setName("小明xxxsxsxsxsxsxsxsxsxsx" + i); + client.setPhone("18797" + i); + client.setCeateBy("JueYue"); + client.setRemark("测试" + i); + client.setTest1("测试数据1"+ i); + client.setTest2("测试数据2"+ i); + client.setTest3("测试数据3"+ i); + client.setTest4("测试数据4"+ i); + client.setTest5("测试数据5"+ i); + client.setTest6("测试数据6"+ i); + client.setTest7("测试数据7"+ i); + client.setTest8("测试数据8"+ i); + client.setTest9("测试数据9"+ i); + client.setTest10("测试数据10"+ i); + client.setTest11("测试数据11"+ i); + client.setTest12("测试数据12"+ i); + client.setTest13("测试数据13"+ i); + client.setTest14("测试数据14"+ i); + client.setTest15("测试数据15"+ i); + client.setTest16("测试数据16"+ i); + client.setTest17("测试数据17"+ i); + client.setTest18("测试数据18"+ i); + client.setTest19("测试数据19"+ i); + client.setTest20("测试数据20"+ i); + client.setTest21("测试数据21"+ i); + userEntityList.add(client); + } + userService.saveBatch(userEntityList); + } + + @Test + public void test(){ + List userEntityList = new ArrayList<>(); + UserEntity client = new UserEntity(); + //client.setBirthday(new Date()); + client.setName("小明xxxsxsxsxsxsxsxsxsxsx"); + client.setPhone("18797"); + client.setCeateBy("JueYue"); + userEntityList.add(client); + userService.saveBatch(userEntityList); + } + + @Test + public void test2 (){ + PageHelper.startPage(1,100000); + List userEntities = userMapper.selectAll(); + PageInfo userEntityPageInfo = new PageInfo<>(userEntities); + System.out.println(userEntityPageInfo.getList()); + System.out.println(userEntityPageInfo.getPages()); + } +} + + + /* CREATE TABLE `user` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(255) DEFAULT NULL, + `phone` varchar(255) DEFAULT NULL, + `ceate_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, + `remark` varchar(255) DEFAULT NULL, + `birthday` datetime DEFAULT NULL, + `test1` varchar(255) DEFAULT NULL, + `test2` varchar(255) DEFAULT NULL, + `test3` varchar(255) DEFAULT NULL, + `test4` varchar(255) DEFAULT NULL, + `test5` varchar(255) DEFAULT NULL, + `test6` varchar(255) DEFAULT NULL, + `test7` varchar(255) DEFAULT NULL, + `test8` varchar(255) DEFAULT NULL, + `test9` varchar(255) DEFAULT NULL, + `test10` varchar(255) DEFAULT NULL, + `test11` varchar(255) DEFAULT NULL, + `test12` varchar(255) DEFAULT NULL, + `test13` varchar(255) DEFAULT NULL, + `test14` varchar(255) DEFAULT NULL, + `test15` varchar(255) DEFAULT NULL, + `test16` varchar(255) DEFAULT NULL, + `test17` varchar(255) DEFAULT NULL, + `test18` varchar(255) DEFAULT NULL, + `test19` varchar(255) DEFAULT NULL, + `test20` varchar(255) DEFAULT NULL, + `test21` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`) + ) ENGINE=InnoDB AUTO_INCREMENT=400001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;*/ + +