10 Commits

9 changed files with 40 additions and 44 deletions

View File

@@ -1,8 +1,8 @@
name: Docker CI
on:
release:
types: [created]
push:
branches: [main]
jobs:
docker:
@@ -20,4 +20,4 @@ jobs:
- name: Build and Push from Makefile
run: |
make build
make build publish

View File

@@ -25,16 +25,3 @@ jobs:
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{secrets.npm_token}}
publish-gpr:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 14
registry-url: https://npm.pkg.github.com/
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}

View File

@@ -11,6 +11,12 @@ WORKDIR /app
COPY . /app
RUN yarn
RUN npm install
CMD [ "node" , "index.js"]
RUN npm link
RUN ln -s $(which excel2json-xlsx) /usr/bin/x2j
ENTRYPOINT [ "/usr/bin/x2j"]
CMD [ "--help" ]

View File

@@ -1,4 +1,4 @@
DOCKER_IMAGE=cubetiq/node-excel2json
DOCKER_IMAGE=cubetiq/excel2json
build:
@echo "Building docker image..."
@@ -8,4 +8,8 @@ run:
@echo "Running container..."
docker run --rm -t ${DOCKER_IMAGE}
publish:
@echo "Publishing docker image..."
docker push ${DOCKER_IMAGE}
.PHONY: build

View File

@@ -29,12 +29,18 @@ const options = yargs
type: "string",
demandOption: false,
})
.argv;
.option("p", {
alias: "print",
describe: "Print the exported json to console",
type: "boolean",
demandOption: false,
}).argv;
const inputFile = options.input;
const outputFile = options.output;
const mapperFile = options.mapper;
const sheetName = options.sheet;
const print = options.print;
const exported = excel2json({
inputFile: inputFile,
@@ -42,3 +48,7 @@ const exported = excel2json({
outputFile: outputFile,
sheetName: sheetName,
});
if (print) {
console.log(exported);
}

View File

@@ -1,18 +1 @@
{
"data": [
{
"dataIndex": "Name",
"label": "Name"
},
{
"dataIndex": "Age",
"label": "Age"
}
],
"configs": {
"outputPath": "./data/outputs/exported",
"outputName": "my_exported_data",
"sheetName": "Sheet1",
"saveToOutput": true
}
}
{}

View File

@@ -8,8 +8,7 @@ function _internalExport(props = {}) {
console.log("Name =>", NAME, "\n");
// load from env
const INPUT_FILE =
props.inputFile || process.env.INPUT_FILE || "./data/people.xlsx";
const INPUT_FILE = props.inputFile || process.env.INPUT_FILE;
const OUTPUT_PATH =
props.outputPath || process.env.OUTPUT_PATH || "./data/outputs";
const MAPPER_FILE =
@@ -31,16 +30,21 @@ function _internalExport(props = {}) {
}
);
} catch (err) {
console.error("read file error", err);
// console.error("read file error", err);
}
// convert mapper from string to json object
const mapperJson = mapperString ? JSON.parse(mapperString) : {};
const configs = { ...mapperJson.configs, ...props };
const columsData = props.mappings || mapperJson.data || undefined;
const inFile = configs.inputFile || INPUT_FILE;
if (!inFile) {
throw Error("Input file is required!");
}
// read workbook from excel file
const wb = XLSX.readFile(configs.inputFile || INPUT_FILE);
const wb = XLSX.readFile(inFile);
const xlData = XLSX.utils.sheet_to_json(
wb.Sheets[configs.sheetName || SHEET_NAME]
);

View File

@@ -2,7 +2,9 @@
const excel2json = require("./excel2json");
// called function export excel2json
const exported = excel2json();
const exported = excel2json({
inputFile: "./data/people.xlsx"
});
// output data from exported
console.log("Output =>\n", exported);

View File

@@ -1,6 +1,6 @@
{
"name": "excel2json-xlsx",
"version": "1.0.1",
"version": "1.0.3",
"keywords": [
"excel",
"json",