Excel을 json 배열로 변환 할 때 날짜를 구문 분석 할 수 없음

에칸시자인

xlsx 파일 인 파일 업로드 용 API를 만들어야합니다. multer를 사용하여 파일을 성공적으로 업로드했으며 파일을 열 수 있으므로 파일을 구문 분석하고 배열 json 객체로 변환해야합니다. 내 코드는 다음과 같습니다.

let workbook = xlsx.readFile(`uploads/${req.file.filename}`)
    let worksheet = workbook.Sheets['Sheet1']
    let headers = {}
    let data = []
    for (z in worksheet) {
        if (z[0] === '!') continue
        //parse out the column, row, and value
        let tt = 0
        for (let i = 0; i < z.length; i++) {
            if (!isNaN(z[i])) {
                tt = i
                break
            }
            tt = i
        }
        let col = z.substring(0, tt)
        let row = parseInt(z.substring(tt))
        let value = worksheet[z].v
        //store header names
        if (row == 1 && value) {
            headers[col] = value
            continue
        }
        if (!data[row]) data[row] = {}
        data[row][headers[col]] = value
    }
    // drop those first two rows which are empty
    data.shift()
    data.shift()
    console.log(data)
    const studentList = []
    data.map(object => {
        if (object['Year of Enrollment']) object['Year of Enrollment'] = parseInt(object['Year of Enrollment'])
        if (object['Semester']) object['Semester'] = parseInt(object['Semester'])
        if (object['Aadhar Number']) object['Aadhar Number'] = parseInt(object['Aadhar Number'])
        if (object['Phone Number']) object['Phone Number'] = parseInt(object['Phone Number'])
        if (object['Alternate Phone Number']) object['Alternate Phone Number'] = parseInt(object['Alternate Phone Number'])
        let obj = {
            "student_first_name": object['First Name'],
            "student_last_name": object['Last Name'],
            "student_branch": object['Branch'],
            "student_year": object['Year of Enrollment'],
            "student_semester": object['Semester'],
            "student_gender": object['Gender'],
            "student_email": object['Email'],
            "student_address": object['Address'],
            "student_linkedin_profile": object['Linkedin Profile'],
            "student_github_profile": object['Github Profile'],
            "student_aadhar_number": object['Aadhar Number'],
            "student_phone_number": object['Phone Number'],
            "student_date_of_birth": object['Date of Birth'],
            college_id: req.body.college_id
        }
        if (object['Alternate Email']) obj.student_alternate_email = object['Alternate Email']
        if (object['Alternate Phone Number']) obj.student_alternate_phone_number = object['Alternate Phone Number']
        studentList.push(obj)
    })
    console.log(studentList)

출력에서 나는 이것을 얻고 있으며 생년월일에 무슨 일이 일어 났는지 모릅니다.

[
  {
    student_first_name: 'Ekansh',
    student_last_name: 'Jain',
    student_branch: 'CSE',
    student_year: 2017,
    student_semester: 6,
    student_gender: 'male',
    student_email: '[email protected]',
    student_address: 'Udfr',
    student_linkedin_profile: 'http://linkedin.com/ekansh',
    student_github_profile: 'http://github.com/ekansh',
    student_aadhar_number: 123456789011,
    student_phone_number: 7894561230,
    student_date_of_birth: 36270,
    college_id: 'college-f9NsLo7Ww6oTIlICElG5GZD5JHKTxqbF',
    student_alternate_email: '[email protected]'
  }
]

엑셀 파일의 생년월일 필드에는 1999 년 4 월 20 일입니다. 출력이 다음과 같이 보이도록 도와 줄 수 있습니까?

[
  {
    student_first_name: 'Ekansh',
    student_last_name: 'Jain',
    student_branch: 'CSE',
    student_year: 2017,
    student_semester: 6,
    student_gender: 'male',
    student_email: '[email protected]',
    student_address: 'Udfr',
    student_linkedin_profile: 'http://linkedin.com/ekansh',
    student_github_profile: 'http://github.com/ekansh',
    student_aadhar_number: 123456789011,
    student_phone_number: 7894561230,
    student_date_of_birth: "1999-04-20",
    college_id: 'college-f9NsLo7Ww6oTIlICElG5GZD5JHKTxqbF',
    student_alternate_email: '[email protected]'
  }
]
에칸시자인

다음 코드와 같이 xlsx 파일 (첫 번째 줄)을 읽을 때 옵션으로 cellDates true를 전달하면됩니다.

let workbook = xlsx.readFile(`uploads/${req.file.filename}`, { cellDates: true })
    let worksheet = workbook.Sheets['Sheet1']
    let headers = {}
    let data = []
    for (z in worksheet) {
        if (z[0] === '!') continue
        //parse out the column, row, and value
        let tt = 0
        for (let i = 0; i < z.length; i++) {
            if (!isNaN(z[i])) {
                tt = i
                break
            }
            tt = i
        }
        let col = z.substring(0, tt)
        let row = parseInt(z.substring(tt))
        let value = worksheet[z].v
        //store header names
        if (row == 1 && value) {
            headers[col] = value
            continue
        }
        if (!data[row]) data[row] = {}
        data[row][headers[col]] = value
    }
    // drop those first two rows which are empty
    data.shift()
    data.shift()
    console.log(data)
    const studentList = []
    data.map(object => {
        if (object['Year of Enrollment']) object['Year of Enrollment'] = parseInt(object['Year of Enrollment'])
        if (object['Semester']) object['Semester'] = parseInt(object['Semester'])
        if (object['Aadhar Number']) object['Aadhar Number'] = parseInt(object['Aadhar Number'])
        if (object['Phone Number']) object['Phone Number'] = parseInt(object['Phone Number'])
        if (object['Alternate Phone Number']) object['Alternate Phone Number'] = parseInt(object['Alternate Phone Number'])
        let obj = {
            "student_first_name": object['First Name'],
            "student_last_name": object['Last Name'],
            "student_branch": object['Branch'],
            "student_year": object['Year of Enrollment'],
            "student_semester": object['Semester'],
            "student_gender": object['Gender'],
            "student_email": object['Email'],
            "student_address": object['Address'],
            "student_linkedin_profile": object['Linkedin Profile'],
            "student_github_profile": object['Github Profile'],
            "student_aadhar_number": object['Aadhar Number'],
            "student_phone_number": object['Phone Number'],
            "student_date_of_birth": object['Date of Birth'],
            college_id: req.body.college_id
        }
        if (object['Alternate Email']) obj.student_alternate_email = object['Alternate Email']
        if (object['Alternate Phone Number']) obj.student_alternate_phone_number = object['Alternate Phone Number']
        studentList.push(obj)
    })
    console.log(studentList)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

때때로 gson을 사용하여 json에서 날짜를 구문 분석 할 수 없습니다.

분류에서Dev

md를 pdf로 변환 할 때 pandoc "yaml 헤더를 구문 분석 할 수 없음"

분류에서Dev

Angular 10 프로젝트를 nativescript 공유 프로젝트로 변환 할 때 "tsconfig.json 파일을 구문 분석 할 수 없습니다"오류

분류에서Dev

XML 날짜를 Excel (vba)로 구문 분석 할 때

분류에서Dev

jq를 사용하여 JSON 데이터를 구문 분석 할 때 "문자열 'Title'로 배열을 색인화 할 수 없습니다.

분류에서Dev

Android JSON 구문 분석 'org.json.JSONObject 유형의 데이터를 JSONArray로 변환 할 수 없음'오류

분류에서Dev

Android json 구문 분석 오류-JSONArray를 JSONObject로 변환 할 수 없습니다.

분류에서Dev

Android json 구문 분석 오류-JSONArray를 JSONObject로 변환 할 수 없습니다.

분류에서Dev

문제 JsonObject 구문 분석이 jsonarray로 변환 할 수 없음

분류에서Dev

JSON 데이터를 POJO로 구문 분석 할 수 없음

분류에서Dev

음의 정수를 배열로 구문 분석 할 때 프로그램 오류

분류에서Dev

jQuery UI로 날짜를 구문 분석 할 수 없습니다.

분류에서Dev

json에서 MutableLiveData로 구문 분석 할 때 데이터를 변환 할 수 있습니까?

분류에서Dev

SwiftyJSON이 JSON 배열을 구문 분석 할 수 없습니다.

분류에서Dev

데이터 구문 분석 오류 org.json.JSONException : 값 문자열을 JSONArray로 변환 할 수 없습니다.

분류에서Dev

JSON으로 변환 할 때 항상 배열로 구문 분석되는 xmlNode를 만드는 방법

분류에서Dev

Groovy는 문자열을 날짜로 구문 분석 할 수 없습니다.

분류에서Dev

문자열을 날짜 형식으로 구문 분석 할 수 없습니다.

분류에서Dev

문자열을 날짜로 변환하는 것은 예외와 함께 실패합니다. 형식이 맞더라도 구문 분석 할 수없는 날짜

분류에서Dev

날짜 변환 오류 : JAVA에서 구문 분석 할 수없는 날짜

분류에서Dev

JSON 배열을 제대로 구문 분석 할 수 없습니다.

분류에서Dev

Java 날짜 구문 분석 문자열 (분석 할 수없는 날짜)

분류에서Dev

Meteor.JS 핸들 바에서 객체를 배열로 변환 한 후 문자열을 분할 할 수 없음

분류에서Dev

문자열에서 날짜를 구문 분석 할 수 없습니다.

분류에서Dev

ISO-8601 날짜 문자열을 날짜로 구문 분석 할 수 없습니다.

분류에서Dev

변환기 구성 실패 : 오류 : C를 구문 분석 할 수 없음 :

분류에서Dev

Play Scala에서 Enum에서 Json으로 맵을 구문 분석 할 수 없음

분류에서Dev

MYSQL 날짜 문제, 날짜를 변환 할 수 없음

분류에서Dev

SwiftyJSON-Json을 구문 분석 할 수 없음

Related 관련 기사

  1. 1

    때때로 gson을 사용하여 json에서 날짜를 구문 분석 할 수 없습니다.

  2. 2

    md를 pdf로 변환 할 때 pandoc "yaml 헤더를 구문 분석 할 수 없음"

  3. 3

    Angular 10 프로젝트를 nativescript 공유 프로젝트로 변환 할 때 "tsconfig.json 파일을 구문 분석 할 수 없습니다"오류

  4. 4

    XML 날짜를 Excel (vba)로 구문 분석 할 때

  5. 5

    jq를 사용하여 JSON 데이터를 구문 분석 할 때 "문자열 'Title'로 배열을 색인화 할 수 없습니다.

  6. 6

    Android JSON 구문 분석 'org.json.JSONObject 유형의 데이터를 JSONArray로 변환 할 수 없음'오류

  7. 7

    Android json 구문 분석 오류-JSONArray를 JSONObject로 변환 할 수 없습니다.

  8. 8

    Android json 구문 분석 오류-JSONArray를 JSONObject로 변환 할 수 없습니다.

  9. 9

    문제 JsonObject 구문 분석이 jsonarray로 변환 할 수 없음

  10. 10

    JSON 데이터를 POJO로 구문 분석 할 수 없음

  11. 11

    음의 정수를 배열로 구문 분석 할 때 프로그램 오류

  12. 12

    jQuery UI로 날짜를 구문 분석 할 수 없습니다.

  13. 13

    json에서 MutableLiveData로 구문 분석 할 때 데이터를 변환 할 수 있습니까?

  14. 14

    SwiftyJSON이 JSON 배열을 구문 분석 할 수 없습니다.

  15. 15

    데이터 구문 분석 오류 org.json.JSONException : 값 문자열을 JSONArray로 변환 할 수 없습니다.

  16. 16

    JSON으로 변환 할 때 항상 배열로 구문 분석되는 xmlNode를 만드는 방법

  17. 17

    Groovy는 문자열을 날짜로 구문 분석 할 수 없습니다.

  18. 18

    문자열을 날짜 형식으로 구문 분석 할 수 없습니다.

  19. 19

    문자열을 날짜로 변환하는 것은 예외와 함께 실패합니다. 형식이 맞더라도 구문 분석 할 수없는 날짜

  20. 20

    날짜 변환 오류 : JAVA에서 구문 분석 할 수없는 날짜

  21. 21

    JSON 배열을 제대로 구문 분석 할 수 없습니다.

  22. 22

    Java 날짜 구문 분석 문자열 (분석 할 수없는 날짜)

  23. 23

    Meteor.JS 핸들 바에서 객체를 배열로 변환 한 후 문자열을 분할 할 수 없음

  24. 24

    문자열에서 날짜를 구문 분석 할 수 없습니다.

  25. 25

    ISO-8601 날짜 문자열을 날짜로 구문 분석 할 수 없습니다.

  26. 26

    변환기 구성 실패 : 오류 : C를 구문 분석 할 수 없음 :

  27. 27

    Play Scala에서 Enum에서 Json으로 맵을 구문 분석 할 수 없음

  28. 28

    MYSQL 날짜 문제, 날짜를 변환 할 수 없음

  29. 29

    SwiftyJSON-Json을 구문 분석 할 수 없음

뜨겁다태그

보관