diff --git a/ReportContentIOKit/pom.xml b/ReportContentIOKit/pom.xml
new file mode 100644
index 0000000..13c2e2f
--- /dev/null
+++ b/ReportContentIOKit/pom.xml
@@ -0,0 +1,59 @@
+
+
+
+ web-component-kit
+ com.infoworks.lab
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ report-content-io-kit
+ jar
+ 1.10.7-RELEASE
+
+
+ 1.8
+ 1.8
+ 1.8
+ UTF-8
+ [2.9.10.5,)
+ 1.1.4
+ 4.1.2
+
+
+
+
+ com.github.itsoulltd
+ JSQLEditor
+ 1.1.4.2-RELEASE
+ provided
+
+
+ com.infoworks.lab
+ http-rest-client
+ 1.10.7-RELEASE
+ provided
+
+
+
+ org.apache.poi
+ poi
+ ${poi-version}
+
+
+ org.apache.poi
+ poi-ooxml
+ ${poi-version}
+
+
+
+ com.monitorjbl
+ xlsx-streamer
+ 2.1.0
+
+
+
+
+
\ No newline at end of file
diff --git a/ReportContentIOKit/src/main/java/com/infoworks/lab/definition/ContentWriter.java b/ReportContentIOKit/src/main/java/com/infoworks/lab/definition/ContentWriter.java
new file mode 100644
index 0000000..7bbeefb
--- /dev/null
+++ b/ReportContentIOKit/src/main/java/com/infoworks/lab/definition/ContentWriter.java
@@ -0,0 +1,8 @@
+package com.infoworks.lab.definition;
+
+import java.util.Map;
+
+public interface ContentWriter extends AutoCloseable{
+ default void write(Map data, boolean skipZeroIndex) { write("", data, skipZeroIndex); }
+ void write(String sheetName, Map data, boolean skipZeroIndex);
+}
diff --git a/ReportContentIOKit/src/main/java/com/infoworks/lab/definition/ReadingService.java b/ReportContentIOKit/src/main/java/com/infoworks/lab/definition/ReadingService.java
new file mode 100644
index 0000000..1f95e41
--- /dev/null
+++ b/ReportContentIOKit/src/main/java/com/infoworks/lab/definition/ReadingService.java
@@ -0,0 +1,43 @@
+package com.infoworks.lab.definition;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Consumer;
+
+public interface ReadingService {
+
+ void readAsync(InputStream inputStream
+ , Integer bufferSize
+ , Integer sheetAt
+ , Integer beginIndex
+ , Integer endIndex
+ , Integer pageSize
+ , Consumer