Info Exporter MT5
- 유틸리티
- Ramesh Maharjan
- 버전: 1.0
Info Exporter MT5는 터미널 정보, 계좌 정보, 거래 내역 및 주문 내역을 로컬 CSV 파일로 내보내고, 이메일을 발송하고, 앱 스크립트에 배포된 URL을 사용하여 Google 스프레드시트로 직접 내보낼 수 있도록 지원합니다. CSV로 내보내거나, 이메일을 사용하거나, Google 스프레드시트로 내보낼 수 있으며, 내보낸 파일 이름과 시트 이름도 수정할 수 있습니다. 사용된 입력 매개변수:
export terminal informations? : 터미널 정보를 내보낼지 여부를 선택합니다. 값은 true 또는 false로 변경할 수 있습니다.
terminal info file or sheet name : 기본값은 "Terminal_Info"이지만 입력 프롬프트에서 변경할 수 있습니다.
export historical deals? : 거래 내역을 내보낼지 여부를 선택합니다. 값은 true 또는 false로 변경할 수 있습니다. 기본값은 false입니다. 즉, 내보내지 않습니다.
history deals file or sheet name : 기본값은 "History_Deals"이지만 입력 프롬프트에서 변경할 수 있습니다.
export historical orders? : 주문 내역을 내보낼지 여부를 선택합니다. 값은 true 또는 false로 변경할 수 있습니다. 기본값은 false입니다. 즉, 내보내지 않습니다.
history orders file or sheet name : 기본값은 "History_Orders"이지만 입력 프롬프트에서 변경할 수 있습니다.
export account informations? : 계좌 정보를 내보낼지 여부를 선택합니다. 값은 true 또는 false로 변경할 수 있습니다. 기본값은 false입니다. 즉, 내보내지 않습니다.
account info file or sheet name : 기본값은 "Account_Info"이지만 입력 프롬프트에서 변경할 수 있습니다.
do you want to write to file? : 활성화된 데이터를 CSV 파일로 내보낼지 여부를 선택합니다. 기본값은 false입니다. 즉, 쓰지 않습니다.
do you want to send informations to email? : 활성화된 데이터를 이메일로 내보낼지 여부를 선택합니다. 기본값은 false입니다. 즉, 이메일을 보내지 않습니다.
do you want to export to Google sheet? : 활성화된 데이터를 Google 시트로 내보낼지 여부를 설정하는 옵션입니다. 기본값은 false입니다. 즉, Google 시트에 쓰지 않습니다.
Apps Script deployed url : Apps Script URL을 배포했습니다.
작동하는 Apps Script 코드는 아래와 같습니다(doPost 함수에 복사하여 붙여넣기만 하면 됩니다).
function doPost(e) {
try {
// Validate input
if (!e || !e.postData || !e.postData.contents) {
throw new Error("no Input data found");
}
// Parse JSON safely
const json = JSON.parse(e.postData.contents);
const sheetName = json.sheetName || "Sheet1";
// Get sheet (with error handling)
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName(sheetName);
if (!sheet) {
sheet = spreadsheet.insertSheet(sheetName);
}
// formatting data to be written in sheet
var terminalInfo = json.data.split("#;#");
var insertingData = [];
for(var i = 0; i < terminalInfo.length; i++) {
insertingData.push(terminalInfo[i].split("#:#"))
}
var startRow = 1;
var startColumn = 1;
var numRows = insertingData.length;
var numColumns = insertingData[0].length;
var range = sheet.getRange(startRow, startColumn, numRows, numColumns);
// Overwrite the rows with the new data
range.setValues(insertingData);
// Return success
return ContentService.createTextOutput(JSON.stringify({
status: "success",
message: "Data written to sheet"
})).setMimeType(ContentService.MimeType.JSON);
} catch (err) {
// Return error details
return ContentService.createTextOutput(JSON.stringify({
status: "error",
message: err.message
})).setMimeType(ContentService.MimeType.JSON);
}
}