타임라인 이름 '비디오2'인 경우도 정답처리
This commit is contained in:
@@ -15,7 +15,6 @@ const todayDate = getToday();
|
||||
// const scoringJson = require('./DIC_2503A.json');
|
||||
// const scoringJson = require('./DIC_2503B.json');
|
||||
const scoringJson = require('./DIC_2503C.json');
|
||||
const { get } = require('http');
|
||||
// const scoringJson = require('./DIC_2503D.json');
|
||||
|
||||
// TEST
|
||||
@@ -127,6 +126,8 @@ const flattenedData = scoringResultList.map(student => {
|
||||
// excel에 표시하지 않을 key값들
|
||||
const exceptKeys = [
|
||||
"0", // 학생 이름 항상 제외
|
||||
"1", // psd1
|
||||
"2", // psd2
|
||||
]
|
||||
const exceptSubkeys = [
|
||||
"videoStartTime",
|
||||
@@ -151,6 +152,17 @@ const flattenedData = scoringResultList.map(student => {
|
||||
const worksheet = XLSX.utils.json_to_sheet(flattenedData);
|
||||
const workbook = XLSX.utils.book_new();
|
||||
|
||||
// 열 너비 계산
|
||||
const columnWidths = Object.keys(flattenedData[0]).map(key => {
|
||||
const maxLength = Math.max(
|
||||
key.length, // 열 제목의 길이
|
||||
...flattenedData.map(row => (row[key] ? row[key].toString().length : 0)) // 각 셀의 데이터 길이
|
||||
);
|
||||
return { wch: maxLength + 1 }; // 여유 공간 추가
|
||||
});
|
||||
|
||||
// 열 너비 설정
|
||||
worksheet['!cols'] = columnWidths;
|
||||
// Add the worksheet to the workbook
|
||||
XLSX.utils.book_append_sheet(workbook, worksheet, '채점 결과');
|
||||
|
||||
@@ -171,8 +183,8 @@ function getTrackClipNode(xmlDoc, type, videoStartTime, openingStartTime) {
|
||||
const startTime = type === 'video' ? videoStartTime : openingStartTime;
|
||||
|
||||
// xpath 구문을 통해 CRTrackClip 요소의 ClipIndex를 찾음
|
||||
const trackClipNode1 = xpath.select1(`//CRTrackList[@Name="텍스트"]/CRTrackClip[not(@ClipIndex='-1')][${subtitleOrder}]`, xmlDoc);
|
||||
const trackClipNode2 = xpath.select1(`//CRTrackList[@Name='텍스트']/CRTrackClip[sum(preceding-sibling::CRTrackClip/@Length) = ${startTime}]`, xmlDoc);
|
||||
const trackClipNode1 = xpath.select1(`//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][${subtitleOrder}]`, xmlDoc);
|
||||
const trackClipNode2 = xpath.select1(`//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[sum(preceding-sibling::CRTrackClip/@Length) = ${startTime}]`, xmlDoc);
|
||||
|
||||
return trackClipNode = trackClipNode1 ?? trackClipNode2;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user