-
카테고리
-
세부 분야
데이터 수집 · 처리
-
해결 여부
미해결
Error: invalid column -1
22.12.28 17:44 작성 조회수 113
0
도저히 어떤 부분이 틀린지 모르겠어서 질문 남깁니다.. 이 부분은 깃헙에 없는건가요??
C:\Users\96tmd\OneDrive\바탕 화면\새 폴더\lecture\node_modules\xlsx\xlsx.js:4095
function encode_col(col) { if(col < 0) throw new Error("invalid column " + col); var s=""; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) +
s; return s; }
^
Error: invalid column -1
at encode_col (C:\Users\96tmd\OneDrive\바탕 화면\새 폴더\lecture\node_modules\xlsx\xlsx.js:4095:46)
at write_ws_xml_data (C:\Users\96tmd\OneDrive\바탕 화면\새 폴더\lecture\node_modules\xlsx\xlsx.js:14999:52)
at write_ws_xml (C:\Users\96tmd\OneDrive\바탕 화면\새 폴더\lecture\node_modules\xlsx\xlsx.js:15077:11)
at write_zip_xlsx (C:\Users\96tmd\OneDrive\바탕 화면\새 폴더\lecture\node_modules\xlsx\xlsx.js:23532:25)
at write_zip (C:\Users\96tmd\OneDrive\바탕 화면\새 폴더\lecture\node_modules\xlsx\xlsx.js:23326:9)
at write_zip_type (C:\Users\96tmd\OneDrive\바탕 화면\새 폴더\lecture\node_modules\xlsx\xlsx.js:23753:10)
at writeSync (C:\Users\96tmd\OneDrive\바탕 화면\새 폴더\lecture\node_modules\xlsx\xlsx.js:23891:22)
at Object.writeFileSync (C:\Users\96tmd\OneDrive\바탕 화면\새 폴더\lecture\node_modules\xlsx\xlsx.js:23914:9)
at crawler (C:\Users\96tmd\OneDrive\바탕 화면\새 폴더\lecture\index.js:76:8)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
C:\Users\96tmd\OneDrive\바탕 화면\새 폴더\lecture>
답변을 작성해보세요.
0

한승보
질문자22.12.29 09:24
콘솔은 다 찍힙니다!
xlsx.writeFile(workbook, 'xlsx/result.xlsx');
이거를 주석하면 에러가 안 뜨는데 쓰면 뜨네요..

한승보
질문자22.12.29 10:32
const xlsx = require('xlsx');
const workbook = xlsx.readFile('xlsx/data.xlsx');
const ws = workbook.Sheets.영화목록;
const records = xlsx.utils.sheet_to_json(ws);
const axios = require('axios')//ajax라이브러리 - html을 응답받음
const cheerio = require('cheerio');//html 파싱 - html -> ks
const add_to_sheet = require('./add_to_sheet');
const crawler = async () => { //순서 보장 - 대신 속도 느림
add_to_sheet(ws, 'c1', 's', '평점')
for(const [i, r] of records.entries()){
const response = await axios.get(r.링크);
if(response.status === 200) { //응답이 성공한 경우
const html = response.data;
//console.log(html);//html 을 다 받는다.
const $ = cheerio.load(html); //cheerio로 로딩 - $통해 태그들에 접근가능 //원하는 것을 가져오는 부분
const text = $('.score.score_left .star_score').text(); //jqeury가능
//console.log(r.제목, '평점', text.trim());
const newCell = 'C' + (i + 1)
console.log(ws)
console.log(newCell)
console.log(ws)
console.log(text.trim())
add_to_sheet(ws, newCell, 'n', parseFloat(text.trim()))
}
}
xlsx.writeFile(workbook, 'xlsx/result.xlsx');
}
crawler();
네 코드는 이게 전부입니다..
콘솔에는
이런식으로만 뜨고 있습니다
이렇게 반복문 다 돌고 writeFile쪽 만나면 에러가 뜨네요

한승보
질문자22.12.29 10:41
버전을 똑같이 하니까 되네요...! 앞자리가 같은 0이라서 안해도 되는 줄 알았습니다 ㅠ 감사합니다 근데 앞자리가 같아도 안되는 경우가 많은가요?
답변 1