DVW statements

This commit is contained in:
Bryce Covert
2019-10-26 18:00:40 -07:00
parent f0e93ec3cf
commit 332eae2f58
5 changed files with 73 additions and 35 deletions

View File

@@ -10,38 +10,40 @@
(every? #(re-find % text) keywords))
(defn extract [wb {:keys [extract vendor]}]
(reduce-kv
(fn [invoice k [regex offset-row offset-column extract-regex]]
(assoc invoice k
(->> wb
(d/sheet-seq)
first
(d/cell-seq)
(filter (fn [cell]
(re-find regex (str (d/read-cell cell)))))
(map (fn [cell]
(let [address (.getAddress cell)
cell-value (str (d/read-cell (d/select-cell (.toString (CellAddress. (+ offset-row (.getRow address)) (+ offset-column (.getColumn address)) ))
(first (d/sheet-seq wb)))))]
(if extract-regex
(second (re-find extract-regex cell-value))
cell-value))))
first)))
{:vendor-code vendor}
extract))
(if (fn? extract)
(extract wb vendor)
[(reduce-kv
(fn [invoice k [regex offset-row offset-column extract-regex]]
(assoc invoice k
(->> wb
(d/sheet-seq)
first
(d/cell-seq)
(filter (fn [cell]
(re-find regex (str (d/read-cell cell)))))
(map (fn [cell]
(let [address (.getAddress cell)
cell-value (str (d/read-cell (d/select-cell (.toString (CellAddress. (+ offset-row (.getRow address)) (+ offset-column (.getColumn address)) ))
(first (d/sheet-seq wb)))))]
(if extract-regex
(second (re-find extract-regex cell-value))
cell-value))))
first)))
{:vendor-code vendor}
extract)]))
(defn parse-file
[file filename]
[(let [wb (d/load-workbook file)
text (->> wb
(d/sheet-seq)
first
(d/cell-seq)
(map d/read-cell)
(str/join " "))]
(->> t/excel-templates
(filter (partial template-applies? text))
first
(extract wb)
))])
(let [wb (d/load-workbook file)
text (->> wb
(d/sheet-seq)
first
(d/cell-seq)
(map d/read-cell)
(str/join " "))]
(->> t/excel-templates
(filter (partial template-applies? text))
first
(extract wb)
)))