embulk-parser-poi_excel 0.1.12 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE.txt +21 -21
- data/README.md +247 -245
- data/build.gradle +92 -92
- data/classpath/{embulk-parser-poi_excel-0.1.12.jar → embulk-parser-poi_excel-0.1.13.jar} +0 -0
- data/gradlew +172 -172
- data/src/main/java/org/embulk/parser/poi_excel/PoiExcelColumnValueType.java +2 -0
- data/src/main/java/org/embulk/parser/poi_excel/PoiExcelParserPlugin.java +7 -6
- data/src/main/java/org/embulk/parser/poi_excel/bean/PoiExcelColumnIndex.java +3 -0
- data/src/main/java/org/embulk/parser/poi_excel/bean/record/PoiExcelRecordSheet.java +6 -0
- data/src/main/java/org/embulk/parser/poi_excel/visitor/PoiExcelColumnVisitor.java +15 -3
- data/src/main/java/org/embulk/parser/poi_excel/visitor/PoiExcelVisitorValue.java +28 -1
- data/src/main/java/org/embulk/parser/poi_excel/visitor/embulk/CellVisitor.java +9 -0
- metadata +3 -3
data/build.gradle
CHANGED
@@ -1,92 +1,92 @@
|
|
1
|
-
plugins {
|
2
|
-
id "com.jfrog.bintray" version "1.1"
|
3
|
-
id "com.github.jruby-gradle.base" version "1.5.0"
|
4
|
-
id "java"
|
5
|
-
id "eclipse"
|
6
|
-
}
|
7
|
-
import com.github.jrubygradle.JRubyExec
|
8
|
-
repositories {
|
9
|
-
mavenCentral()
|
10
|
-
jcenter()
|
11
|
-
}
|
12
|
-
configurations {
|
13
|
-
provided
|
14
|
-
}
|
15
|
-
|
16
|
-
version = "0.1.
|
17
|
-
|
18
|
-
sourceCompatibility = 1.7
|
19
|
-
targetCompatibility = 1.7
|
20
|
-
|
21
|
-
dependencies {
|
22
|
-
compile "org.embulk:embulk-core:0.7.5"
|
23
|
-
provided "org.embulk:embulk-core:0.7.5"
|
24
|
-
compile "org.embulk:embulk-standards:0.7.5"
|
25
|
-
// compile "YOUR_JAR_DEPENDENCY_GROUP:YOUR_JAR_DEPENDENCY_MODULE:YOUR_JAR_DEPENDENCY_VERSION"
|
26
|
-
compile group: 'org.apache.poi', name : 'poi', version: '3.17'
|
27
|
-
compile(group: 'org.apache.poi', name : 'poi-ooxml', version: '3.17') {
|
28
|
-
exclude group: 'stax', module: 'stax-api'
|
29
|
-
}
|
30
|
-
testCompile "junit:junit:4.+"
|
31
|
-
}
|
32
|
-
|
33
|
-
task classpath(type: Copy, dependsOn: ["jar"]) {
|
34
|
-
doFirst { file("classpath").deleteDir() }
|
35
|
-
from (configurations.runtime - configurations.provided + files(jar.archivePath))
|
36
|
-
into "classpath"
|
37
|
-
}
|
38
|
-
clean { delete "classpath" }
|
39
|
-
|
40
|
-
task gem(type: JRubyExec, dependsOn: ["gemspec", "classpath"]) {
|
41
|
-
jrubyArgs "-S"
|
42
|
-
script "gem"
|
43
|
-
scriptArgs "build", "${project.name}.gemspec"
|
44
|
-
doLast { ant.move(file: "${project.name}-${project.version}.gem", todir: "pkg") }
|
45
|
-
}
|
46
|
-
|
47
|
-
task gemPush(type: JRubyExec, dependsOn: ["gem"]) {
|
48
|
-
jrubyArgs "-S"
|
49
|
-
script "gem"
|
50
|
-
scriptArgs "push", "pkg/${project.name}-${project.version}.gem"
|
51
|
-
}
|
52
|
-
|
53
|
-
task "package"(dependsOn: ["gemspec", "classpath"]) {
|
54
|
-
doLast {
|
55
|
-
println "> Build succeeded."
|
56
|
-
println "> You can run embulk with '-L ${file(".").absolutePath}' argument."
|
57
|
-
}
|
58
|
-
}
|
59
|
-
|
60
|
-
task gemUnpack(type: JRubyExec) {
|
61
|
-
jrubyArgs "-S"
|
62
|
-
script "gem"
|
63
|
-
scriptArgs "unpack", "pkg/${project.name}-${project.version}.gem"
|
64
|
-
}
|
65
|
-
|
66
|
-
task gemspec {
|
67
|
-
ext.gemspecFile = file("${project.name}.gemspec")
|
68
|
-
inputs.file "build.gradle"
|
69
|
-
outputs.file gemspecFile
|
70
|
-
doLast { gemspecFile.write($/
|
71
|
-
Gem::Specification.new do |spec|
|
72
|
-
spec.name = "${project.name}"
|
73
|
-
spec.version = "${project.version}"
|
74
|
-
spec.authors = ["hishidama"]
|
75
|
-
spec.summary = %[Apache POI Excel parser plugin for Embulk]
|
76
|
-
spec.description = %[Parses Excel files(xls, xlsx) read by other file input plugins.]
|
77
|
-
spec.email = ["hishi.dama@asahi.email.ne.jp"]
|
78
|
-
spec.licenses = ["MIT"]
|
79
|
-
spec.homepage = "https://github.com/hishidama/embulk-parser-poi_excel"
|
80
|
-
|
81
|
-
spec.files = `git ls-files`.split("\n") + Dir["classpath/*.jar"]
|
82
|
-
spec.test_files = spec.files.grep(%r"^(test|spec)/")
|
83
|
-
spec.require_paths = ["lib"]
|
84
|
-
|
85
|
-
#spec.add_dependency 'YOUR_GEM_DEPENDENCY', ['~> YOUR_GEM_DEPENDENCY_VERSION']
|
86
|
-
spec.add_development_dependency 'bundler', ['~> 1.0']
|
87
|
-
spec.add_development_dependency 'rake', ['>= 10.0']
|
88
|
-
end
|
89
|
-
/$)
|
90
|
-
}
|
91
|
-
}
|
92
|
-
clean { delete "${project.name}.gemspec" }
|
1
|
+
plugins {
|
2
|
+
id "com.jfrog.bintray" version "1.1"
|
3
|
+
id "com.github.jruby-gradle.base" version "1.5.0"
|
4
|
+
id "java"
|
5
|
+
id "eclipse"
|
6
|
+
}
|
7
|
+
import com.github.jrubygradle.JRubyExec
|
8
|
+
repositories {
|
9
|
+
mavenCentral()
|
10
|
+
jcenter()
|
11
|
+
}
|
12
|
+
configurations {
|
13
|
+
provided
|
14
|
+
}
|
15
|
+
|
16
|
+
version = "0.1.13"
|
17
|
+
|
18
|
+
sourceCompatibility = 1.7
|
19
|
+
targetCompatibility = 1.7
|
20
|
+
|
21
|
+
dependencies {
|
22
|
+
compile "org.embulk:embulk-core:0.7.5"
|
23
|
+
provided "org.embulk:embulk-core:0.7.5"
|
24
|
+
compile "org.embulk:embulk-standards:0.7.5"
|
25
|
+
// compile "YOUR_JAR_DEPENDENCY_GROUP:YOUR_JAR_DEPENDENCY_MODULE:YOUR_JAR_DEPENDENCY_VERSION"
|
26
|
+
compile group: 'org.apache.poi', name : 'poi', version: '3.17'
|
27
|
+
compile(group: 'org.apache.poi', name : 'poi-ooxml', version: '3.17') {
|
28
|
+
exclude group: 'stax', module: 'stax-api'
|
29
|
+
}
|
30
|
+
testCompile "junit:junit:4.+"
|
31
|
+
}
|
32
|
+
|
33
|
+
task classpath(type: Copy, dependsOn: ["jar"]) {
|
34
|
+
doFirst { file("classpath").deleteDir() }
|
35
|
+
from (configurations.runtime - configurations.provided + files(jar.archivePath))
|
36
|
+
into "classpath"
|
37
|
+
}
|
38
|
+
clean { delete "classpath" }
|
39
|
+
|
40
|
+
task gem(type: JRubyExec, dependsOn: ["gemspec", "classpath"]) {
|
41
|
+
jrubyArgs "-S"
|
42
|
+
script "gem"
|
43
|
+
scriptArgs "build", "${project.name}.gemspec"
|
44
|
+
doLast { ant.move(file: "${project.name}-${project.version}.gem", todir: "pkg") }
|
45
|
+
}
|
46
|
+
|
47
|
+
task gemPush(type: JRubyExec, dependsOn: ["gem"]) {
|
48
|
+
jrubyArgs "-S"
|
49
|
+
script "gem"
|
50
|
+
scriptArgs "push", "pkg/${project.name}-${project.version}.gem"
|
51
|
+
}
|
52
|
+
|
53
|
+
task "package"(dependsOn: ["gemspec", "classpath"]) {
|
54
|
+
doLast {
|
55
|
+
println "> Build succeeded."
|
56
|
+
println "> You can run embulk with '-L ${file(".").absolutePath}' argument."
|
57
|
+
}
|
58
|
+
}
|
59
|
+
|
60
|
+
task gemUnpack(type: JRubyExec) {
|
61
|
+
jrubyArgs "-S"
|
62
|
+
script "gem"
|
63
|
+
scriptArgs "unpack", "pkg/${project.name}-${project.version}.gem"
|
64
|
+
}
|
65
|
+
|
66
|
+
task gemspec {
|
67
|
+
ext.gemspecFile = file("${project.name}.gemspec")
|
68
|
+
inputs.file "build.gradle"
|
69
|
+
outputs.file gemspecFile
|
70
|
+
doLast { gemspecFile.write($/
|
71
|
+
Gem::Specification.new do |spec|
|
72
|
+
spec.name = "${project.name}"
|
73
|
+
spec.version = "${project.version}"
|
74
|
+
spec.authors = ["hishidama"]
|
75
|
+
spec.summary = %[Apache POI Excel parser plugin for Embulk]
|
76
|
+
spec.description = %[Parses Excel files(xls, xlsx) read by other file input plugins.]
|
77
|
+
spec.email = ["hishi.dama@asahi.email.ne.jp"]
|
78
|
+
spec.licenses = ["MIT"]
|
79
|
+
spec.homepage = "https://github.com/hishidama/embulk-parser-poi_excel"
|
80
|
+
|
81
|
+
spec.files = `git ls-files`.split("\n") + Dir["classpath/*.jar"]
|
82
|
+
spec.test_files = spec.files.grep(%r"^(test|spec)/")
|
83
|
+
spec.require_paths = ["lib"]
|
84
|
+
|
85
|
+
#spec.add_dependency 'YOUR_GEM_DEPENDENCY', ['~> YOUR_GEM_DEPENDENCY_VERSION']
|
86
|
+
spec.add_development_dependency 'bundler', ['~> 1.0']
|
87
|
+
spec.add_development_dependency 'rake', ['>= 10.0']
|
88
|
+
end
|
89
|
+
/$)
|
90
|
+
}
|
91
|
+
}
|
92
|
+
clean { delete "${project.name}.gemspec" }
|
Binary file
|
data/gradlew
CHANGED
@@ -1,172 +1,172 @@
|
|
1
|
-
#!/usr/bin/env sh
|
2
|
-
|
3
|
-
##############################################################################
|
4
|
-
##
|
5
|
-
## Gradle start up script for UN*X
|
6
|
-
##
|
7
|
-
##############################################################################
|
8
|
-
|
9
|
-
# Attempt to set APP_HOME
|
10
|
-
# Resolve links: $0 may be a link
|
11
|
-
PRG="$0"
|
12
|
-
# Need this for relative symlinks.
|
13
|
-
while [ -h "$PRG" ] ; do
|
14
|
-
ls=`ls -ld "$PRG"`
|
15
|
-
link=`expr "$ls" : '.*-> \(.*\)$'`
|
16
|
-
if expr "$link" : '/.*' > /dev/null; then
|
17
|
-
PRG="$link"
|
18
|
-
else
|
19
|
-
PRG=`dirname "$PRG"`"/$link"
|
20
|
-
fi
|
21
|
-
done
|
22
|
-
SAVED="`pwd`"
|
23
|
-
cd "`dirname \"$PRG\"`/" >/dev/null
|
24
|
-
APP_HOME="`pwd -P`"
|
25
|
-
cd "$SAVED" >/dev/null
|
26
|
-
|
27
|
-
APP_NAME="Gradle"
|
28
|
-
APP_BASE_NAME=`basename "$0"`
|
29
|
-
|
30
|
-
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
31
|
-
DEFAULT_JVM_OPTS=""
|
32
|
-
|
33
|
-
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
34
|
-
MAX_FD="maximum"
|
35
|
-
|
36
|
-
warn () {
|
37
|
-
echo "$*"
|
38
|
-
}
|
39
|
-
|
40
|
-
die () {
|
41
|
-
echo
|
42
|
-
echo "$*"
|
43
|
-
echo
|
44
|
-
exit 1
|
45
|
-
}
|
46
|
-
|
47
|
-
# OS specific support (must be 'true' or 'false').
|
48
|
-
cygwin=false
|
49
|
-
msys=false
|
50
|
-
darwin=false
|
51
|
-
nonstop=false
|
52
|
-
case "`uname`" in
|
53
|
-
CYGWIN* )
|
54
|
-
cygwin=true
|
55
|
-
;;
|
56
|
-
Darwin* )
|
57
|
-
darwin=true
|
58
|
-
;;
|
59
|
-
MINGW* )
|
60
|
-
msys=true
|
61
|
-
;;
|
62
|
-
NONSTOP* )
|
63
|
-
nonstop=true
|
64
|
-
;;
|
65
|
-
esac
|
66
|
-
|
67
|
-
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
68
|
-
|
69
|
-
# Determine the Java command to use to start the JVM.
|
70
|
-
if [ -n "$JAVA_HOME" ] ; then
|
71
|
-
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
72
|
-
# IBM's JDK on AIX uses strange locations for the executables
|
73
|
-
JAVACMD="$JAVA_HOME/jre/sh/java"
|
74
|
-
else
|
75
|
-
JAVACMD="$JAVA_HOME/bin/java"
|
76
|
-
fi
|
77
|
-
if [ ! -x "$JAVACMD" ] ; then
|
78
|
-
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
79
|
-
|
80
|
-
Please set the JAVA_HOME variable in your environment to match the
|
81
|
-
location of your Java installation."
|
82
|
-
fi
|
83
|
-
else
|
84
|
-
JAVACMD="java"
|
85
|
-
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
86
|
-
|
87
|
-
Please set the JAVA_HOME variable in your environment to match the
|
88
|
-
location of your Java installation."
|
89
|
-
fi
|
90
|
-
|
91
|
-
# Increase the maximum file descriptors if we can.
|
92
|
-
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
93
|
-
MAX_FD_LIMIT=`ulimit -H -n`
|
94
|
-
if [ $? -eq 0 ] ; then
|
95
|
-
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
96
|
-
MAX_FD="$MAX_FD_LIMIT"
|
97
|
-
fi
|
98
|
-
ulimit -n $MAX_FD
|
99
|
-
if [ $? -ne 0 ] ; then
|
100
|
-
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
101
|
-
fi
|
102
|
-
else
|
103
|
-
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
104
|
-
fi
|
105
|
-
fi
|
106
|
-
|
107
|
-
# For Darwin, add options to specify how the application appears in the dock
|
108
|
-
if $darwin; then
|
109
|
-
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
110
|
-
fi
|
111
|
-
|
112
|
-
# For Cygwin, switch paths to Windows format before running java
|
113
|
-
if $cygwin ; then
|
114
|
-
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
115
|
-
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
116
|
-
JAVACMD=`cygpath --unix "$JAVACMD"`
|
117
|
-
|
118
|
-
# We build the pattern for arguments to be converted via cygpath
|
119
|
-
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
120
|
-
SEP=""
|
121
|
-
for dir in $ROOTDIRSRAW ; do
|
122
|
-
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
123
|
-
SEP="|"
|
124
|
-
done
|
125
|
-
OURCYGPATTERN="(^($ROOTDIRS))"
|
126
|
-
# Add a user-defined pattern to the cygpath arguments
|
127
|
-
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
128
|
-
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
129
|
-
fi
|
130
|
-
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
131
|
-
i=0
|
132
|
-
for arg in "$@" ; do
|
133
|
-
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
134
|
-
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
135
|
-
|
136
|
-
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
137
|
-
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
138
|
-
else
|
139
|
-
eval `echo args$i`="\"$arg\""
|
140
|
-
fi
|
141
|
-
i=$((i+1))
|
142
|
-
done
|
143
|
-
case $i in
|
144
|
-
(0) set -- ;;
|
145
|
-
(1) set -- "$args0" ;;
|
146
|
-
(2) set -- "$args0" "$args1" ;;
|
147
|
-
(3) set -- "$args0" "$args1" "$args2" ;;
|
148
|
-
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
149
|
-
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
150
|
-
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
151
|
-
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
152
|
-
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
153
|
-
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
154
|
-
esac
|
155
|
-
fi
|
156
|
-
|
157
|
-
# Escape application args
|
158
|
-
save () {
|
159
|
-
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
160
|
-
echo " "
|
161
|
-
}
|
162
|
-
APP_ARGS=$(save "$@")
|
163
|
-
|
164
|
-
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
165
|
-
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
166
|
-
|
167
|
-
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
|
168
|
-
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
|
169
|
-
cd "$(dirname "$0")"
|
170
|
-
fi
|
171
|
-
|
172
|
-
exec "$JAVACMD" "$@"
|
1
|
+
#!/usr/bin/env sh
|
2
|
+
|
3
|
+
##############################################################################
|
4
|
+
##
|
5
|
+
## Gradle start up script for UN*X
|
6
|
+
##
|
7
|
+
##############################################################################
|
8
|
+
|
9
|
+
# Attempt to set APP_HOME
|
10
|
+
# Resolve links: $0 may be a link
|
11
|
+
PRG="$0"
|
12
|
+
# Need this for relative symlinks.
|
13
|
+
while [ -h "$PRG" ] ; do
|
14
|
+
ls=`ls -ld "$PRG"`
|
15
|
+
link=`expr "$ls" : '.*-> \(.*\)$'`
|
16
|
+
if expr "$link" : '/.*' > /dev/null; then
|
17
|
+
PRG="$link"
|
18
|
+
else
|
19
|
+
PRG=`dirname "$PRG"`"/$link"
|
20
|
+
fi
|
21
|
+
done
|
22
|
+
SAVED="`pwd`"
|
23
|
+
cd "`dirname \"$PRG\"`/" >/dev/null
|
24
|
+
APP_HOME="`pwd -P`"
|
25
|
+
cd "$SAVED" >/dev/null
|
26
|
+
|
27
|
+
APP_NAME="Gradle"
|
28
|
+
APP_BASE_NAME=`basename "$0"`
|
29
|
+
|
30
|
+
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
31
|
+
DEFAULT_JVM_OPTS=""
|
32
|
+
|
33
|
+
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
34
|
+
MAX_FD="maximum"
|
35
|
+
|
36
|
+
warn () {
|
37
|
+
echo "$*"
|
38
|
+
}
|
39
|
+
|
40
|
+
die () {
|
41
|
+
echo
|
42
|
+
echo "$*"
|
43
|
+
echo
|
44
|
+
exit 1
|
45
|
+
}
|
46
|
+
|
47
|
+
# OS specific support (must be 'true' or 'false').
|
48
|
+
cygwin=false
|
49
|
+
msys=false
|
50
|
+
darwin=false
|
51
|
+
nonstop=false
|
52
|
+
case "`uname`" in
|
53
|
+
CYGWIN* )
|
54
|
+
cygwin=true
|
55
|
+
;;
|
56
|
+
Darwin* )
|
57
|
+
darwin=true
|
58
|
+
;;
|
59
|
+
MINGW* )
|
60
|
+
msys=true
|
61
|
+
;;
|
62
|
+
NONSTOP* )
|
63
|
+
nonstop=true
|
64
|
+
;;
|
65
|
+
esac
|
66
|
+
|
67
|
+
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
68
|
+
|
69
|
+
# Determine the Java command to use to start the JVM.
|
70
|
+
if [ -n "$JAVA_HOME" ] ; then
|
71
|
+
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
72
|
+
# IBM's JDK on AIX uses strange locations for the executables
|
73
|
+
JAVACMD="$JAVA_HOME/jre/sh/java"
|
74
|
+
else
|
75
|
+
JAVACMD="$JAVA_HOME/bin/java"
|
76
|
+
fi
|
77
|
+
if [ ! -x "$JAVACMD" ] ; then
|
78
|
+
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
79
|
+
|
80
|
+
Please set the JAVA_HOME variable in your environment to match the
|
81
|
+
location of your Java installation."
|
82
|
+
fi
|
83
|
+
else
|
84
|
+
JAVACMD="java"
|
85
|
+
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
86
|
+
|
87
|
+
Please set the JAVA_HOME variable in your environment to match the
|
88
|
+
location of your Java installation."
|
89
|
+
fi
|
90
|
+
|
91
|
+
# Increase the maximum file descriptors if we can.
|
92
|
+
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
93
|
+
MAX_FD_LIMIT=`ulimit -H -n`
|
94
|
+
if [ $? -eq 0 ] ; then
|
95
|
+
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
96
|
+
MAX_FD="$MAX_FD_LIMIT"
|
97
|
+
fi
|
98
|
+
ulimit -n $MAX_FD
|
99
|
+
if [ $? -ne 0 ] ; then
|
100
|
+
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
101
|
+
fi
|
102
|
+
else
|
103
|
+
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
104
|
+
fi
|
105
|
+
fi
|
106
|
+
|
107
|
+
# For Darwin, add options to specify how the application appears in the dock
|
108
|
+
if $darwin; then
|
109
|
+
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
110
|
+
fi
|
111
|
+
|
112
|
+
# For Cygwin, switch paths to Windows format before running java
|
113
|
+
if $cygwin ; then
|
114
|
+
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
115
|
+
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
116
|
+
JAVACMD=`cygpath --unix "$JAVACMD"`
|
117
|
+
|
118
|
+
# We build the pattern for arguments to be converted via cygpath
|
119
|
+
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
120
|
+
SEP=""
|
121
|
+
for dir in $ROOTDIRSRAW ; do
|
122
|
+
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
123
|
+
SEP="|"
|
124
|
+
done
|
125
|
+
OURCYGPATTERN="(^($ROOTDIRS))"
|
126
|
+
# Add a user-defined pattern to the cygpath arguments
|
127
|
+
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
128
|
+
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
129
|
+
fi
|
130
|
+
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
131
|
+
i=0
|
132
|
+
for arg in "$@" ; do
|
133
|
+
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
134
|
+
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
135
|
+
|
136
|
+
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
137
|
+
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
138
|
+
else
|
139
|
+
eval `echo args$i`="\"$arg\""
|
140
|
+
fi
|
141
|
+
i=$((i+1))
|
142
|
+
done
|
143
|
+
case $i in
|
144
|
+
(0) set -- ;;
|
145
|
+
(1) set -- "$args0" ;;
|
146
|
+
(2) set -- "$args0" "$args1" ;;
|
147
|
+
(3) set -- "$args0" "$args1" "$args2" ;;
|
148
|
+
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
149
|
+
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
150
|
+
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
151
|
+
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
152
|
+
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
153
|
+
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
154
|
+
esac
|
155
|
+
fi
|
156
|
+
|
157
|
+
# Escape application args
|
158
|
+
save () {
|
159
|
+
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
160
|
+
echo " "
|
161
|
+
}
|
162
|
+
APP_ARGS=$(save "$@")
|
163
|
+
|
164
|
+
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
165
|
+
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
166
|
+
|
167
|
+
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
|
168
|
+
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
|
169
|
+
cd "$(dirname "$0")"
|
170
|
+
fi
|
171
|
+
|
172
|
+
exec "$JAVACMD" "$@"
|
@@ -17,6 +17,8 @@ public enum PoiExcelColumnValueType {
|
|
17
17
|
CELL_TYPE(true, false),
|
18
18
|
/** cell CachedFormulaResultType */
|
19
19
|
CELL_CACHED_TYPE(true, false),
|
20
|
+
/** file name */
|
21
|
+
FILE_NAME(false, false),
|
20
22
|
/** sheet name */
|
21
23
|
SHEET_NAME(false, false),
|
22
24
|
/** row number (1 origin) */
|
@@ -205,7 +205,7 @@ public class PoiExcelParserPlugin implements ParserPlugin {
|
|
205
205
|
if (log.isDebugEnabled()) {
|
206
206
|
log.debug("resolved sheet names={}", list);
|
207
207
|
}
|
208
|
-
run(task, schema, workbook, list, output);
|
208
|
+
run(task, schema, input, workbook, list, output);
|
209
209
|
}
|
210
210
|
}
|
211
211
|
}
|
@@ -257,7 +257,8 @@ public class PoiExcelParserPlugin implements ParserPlugin {
|
|
257
257
|
return new ArrayList<>(set);
|
258
258
|
}
|
259
259
|
|
260
|
-
protected void run(PluginTask task, Schema schema, Workbook workbook, List<String> sheetNames,
|
260
|
+
protected void run(PluginTask task, Schema schema, FileInput input, Workbook workbook, List<String> sheetNames,
|
261
|
+
PageOutput output) {
|
261
262
|
final int flushCount = task.getFlushCount();
|
262
263
|
|
263
264
|
try (PageBuilder pageBuilder = new PageBuilder(Exec.getBufferAllocator(), schema, output)) {
|
@@ -273,7 +274,7 @@ public class PoiExcelParserPlugin implements ParserPlugin {
|
|
273
274
|
}
|
274
275
|
|
275
276
|
log.info("sheet={}", sheetName);
|
276
|
-
PoiExcelVisitorFactory factory = newPoiExcelVisitorFactory(task, schema, sheet, pageBuilder);
|
277
|
+
PoiExcelVisitorFactory factory = newPoiExcelVisitorFactory(task, schema, input, sheet, pageBuilder);
|
277
278
|
PoiExcelColumnVisitor visitor = factory.getPoiExcelColumnVisitor();
|
278
279
|
PoiExcelSheetBean sheetBean = factory.getVisitorValue().getSheetBean();
|
279
280
|
final int skipHeaderLines = sheetBean.getSkipHeaderLines();
|
@@ -303,9 +304,9 @@ public class PoiExcelParserPlugin implements ParserPlugin {
|
|
303
304
|
}
|
304
305
|
}
|
305
306
|
|
306
|
-
protected PoiExcelVisitorFactory newPoiExcelVisitorFactory(PluginTask task, Schema schema,
|
307
|
-
PageBuilder pageBuilder) {
|
308
|
-
PoiExcelVisitorValue visitorValue = new PoiExcelVisitorValue(task, schema, sheet, pageBuilder);
|
307
|
+
protected PoiExcelVisitorFactory newPoiExcelVisitorFactory(PluginTask task, Schema schema, FileInput input,
|
308
|
+
Sheet sheet, PageBuilder pageBuilder) {
|
309
|
+
PoiExcelVisitorValue visitorValue = new PoiExcelVisitorValue(task, schema, input, sheet, pageBuilder);
|
309
310
|
return new PoiExcelVisitorFactory(visitorValue);
|
310
311
|
}
|
311
312
|
}
|
@@ -278,6 +278,9 @@ public class PoiExcelColumnIndex {
|
|
278
278
|
}
|
279
279
|
break;
|
280
280
|
|
281
|
+
case FILE_NAME:
|
282
|
+
log.info("column.name={} <- value={}", column.getName(), valueType);
|
283
|
+
break;
|
281
284
|
case SHEET_NAME:
|
282
285
|
if (cellAddress != null && cellAddress.getSheetName() != null) {
|
283
286
|
log.info("column.name={} <- {}={}, value={}", column.getName(), cname, cvalue, valueType);
|
@@ -1,6 +1,7 @@
|
|
1
1
|
package org.embulk.parser.poi_excel.bean.record;
|
2
2
|
|
3
3
|
import org.apache.poi.ss.usermodel.Cell;
|
4
|
+
import org.apache.poi.ss.util.CellReference;
|
4
5
|
import org.embulk.parser.poi_excel.bean.PoiExcelColumnBean;
|
5
6
|
import org.embulk.spi.Exec;
|
6
7
|
import org.slf4j.Logger;
|
@@ -46,4 +47,9 @@ public class PoiExcelRecordSheet extends PoiExcelRecord {
|
|
46
47
|
public Cell getCell(PoiExcelColumnBean bean) {
|
47
48
|
throw new UnsupportedOperationException("unsupported at record_type=sheet");
|
48
49
|
}
|
50
|
+
|
51
|
+
@Override
|
52
|
+
public CellReference getCellReference(PoiExcelColumnBean bean) {
|
53
|
+
return null;
|
54
|
+
}
|
49
55
|
}
|
@@ -5,6 +5,7 @@ import java.text.MessageFormat;
|
|
5
5
|
import org.apache.poi.ss.usermodel.Cell;
|
6
6
|
import org.apache.poi.ss.usermodel.CellType;
|
7
7
|
import org.apache.poi.ss.usermodel.Sheet;
|
8
|
+
import org.apache.poi.ss.util.CellReference;
|
8
9
|
import org.embulk.parser.poi_excel.PoiExcelColumnValueType;
|
9
10
|
import org.embulk.parser.poi_excel.bean.PoiExcelColumnBean;
|
10
11
|
import org.embulk.parser.poi_excel.bean.record.PoiExcelRecord;
|
@@ -68,9 +69,17 @@ public class PoiExcelColumnVisitor implements ColumnVisitor {
|
|
68
69
|
visitCell(column, visitor);
|
69
70
|
} catch (Exception e) {
|
70
71
|
String sheetName = visitorValue.getSheet().getSheetName();
|
71
|
-
|
72
|
-
|
73
|
-
|
72
|
+
CellReference ref = record.getCellReference(visitorValue.getColumnBean(column));
|
73
|
+
|
74
|
+
String message;
|
75
|
+
if (ref != null) {
|
76
|
+
message = MessageFormat.format("error at {0} cell={1}!{2}. {3}", column, sheetName,
|
77
|
+
ref.formatAsString(), e.getMessage());
|
78
|
+
} else {
|
79
|
+
message = MessageFormat.format("error at {0} sheet={1}. {2}", column, sheetName, e.getMessage());
|
80
|
+
}
|
81
|
+
|
82
|
+
throw new RuntimeException(message, e);
|
74
83
|
}
|
75
84
|
if (log.isTraceEnabled()) {
|
76
85
|
log.trace("{} end", column);
|
@@ -83,6 +92,9 @@ public class PoiExcelColumnVisitor implements ColumnVisitor {
|
|
83
92
|
PoiExcelCellAddress cellAddress = bean.getCellAddress();
|
84
93
|
|
85
94
|
switch (valueType) {
|
95
|
+
case FILE_NAME:
|
96
|
+
visitor.visitFileName(column);
|
97
|
+
return;
|
86
98
|
case SHEET_NAME:
|
87
99
|
if (cellAddress != null) {
|
88
100
|
Sheet sheet = cellAddress.getSheet(record);
|