웹데이터를 importhtml로 읽어 파싱하는 법..
C#으로 읽고 파싱하기
the best way of converting a Html table to datatable
var doc = new HtmlDocument();
doc.Load(url);
var nodes = doc.DocumentNode.SelectNodes("//table/tr");
var table = new DataTable("MyTable");
var headers = nodes[0]
.Elements("th")
.Select(th => th.InnerText.Trim());
foreach (var header in headers)
{
table.Columns.Add(header);
}
var rows = nodes.Skip(1).Select(tr => tr
.Elements("td")
.Select(td => td.InnerText.Trim())
.ToArray());
foreach (var row in rows)
{
table.Rows.Add(row);
}
시트 데이터 복사
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
// StockShareTrace = _sSheet, 대상 종목시트 = _tSheet
// --------------------------------------------------------------------------
function CopySheet(_sSheet,_tSheet){
var sRange = _sSheet.getDataRange(); // Get full range of data
var sourceRange = _sSheet.getRange(1, 1, _sSheet.getLastRow(), _sSheet.getLastColumn());
var targetRange = _tSheet.getRange(1, 1, 1, 1);
sourceRange.copyTo(targetRange);
};
// --------------------------------------------------------------------------
// https://developers.google.com/apps-script/reference/spreadsheet/sheet#getrangerow-column-numrows-numcolumns
// var range = sheet.getRange(1, 1, 3, 3);
// https://stackoverflow.com/questions/16090447/paste-special-values-google-apps-script
// --------------------------------------------------------------------------
function CopyRange(source,destination) {
var sourceSheet = source.getSheet();
var destSheet = destination.getSheet();
var sourceData = source.getValues();
var dest = destSheet.getRange(
destination.getRow(), // Top row of destination
destination.getColumn(), // left col of destination
sourceData.length, // # rows in source
sourceData[0].length); // # cols in source (elements in first row)
dest.setValues(sourceData);
//source.clear();
};
// --------------------------------------------------------------------------
// https://developers.google.com/apps-script/reference/spreadsheet/sheet#getrangerow-column-numrows-numcolumns
// http://stackoverflow.com/questions/11058019/delete-a-row-in-google-spreadsheets-if-value-of-cell-in-said-row-is-0-or-blank
// http://stackoverflow.com/questions/36116050/delete-row-in-google-sheets-if-certain-word-is-found-in-cell
/**
* Deletes rows in the active spreadsheet that contain 0 or
* a blank valuein column "C".
* For more information on using the Spreadsheet API, see
* https://developers.google.com/apps-script/service_spreadsheet
*/
// Maximum run time of Google script per user or per account
// https://stackoverflow.com/questions/36804160/maximum-run-time-of-google-script-per-user-or-per-account
// https://www.google.co.kr/search?newwindow=1&q=google+script+exceeded+maximum+execution+time&sa=X&ved=0ahUKEwipj6XhrtHVAhVDk5QKHbOFCGMQ1QIIaCgD&biw=1137&bih=929
// "google script exceeded maximum execution time"
// 1 hour toal/day, 6 min/run
// The maximum allowed time for your script to run continuously is 6 minutes.
// If it exceeds that limit, GAS would throw the "Exceeded maximum execution time" exception.
// --------------------------------------------------------------------------
function DeleteRows() {
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
var rowsDeleted = 0;
for (var i = 0; i <= numRows - 1; i++) {
var row = values[i];
if (row[2] == 0 || row[2] == '') {
sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
rowsDeleted++;
}
}
};
// --------------------------------------------------------------------------
function test_moveRange() {
var sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
var destSheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[1];
var source = sourceSheet.getRange("A7:C10");
var destination = destSheet.getRange("C4:H2");
moveRange(source,destination);
};
'C#_.NET' 카테고리의 다른 글
| C# WPF - 실행화일에 DLL 포함시켜 단일 EXE 만들기 (0) | 2019.10.13 |
|---|---|
| C# WPF 프로그래밍 - 윈폼과 달라 헤멘 것들 (0) | 2019.10.12 |
| 증권 데이터 읽는 구글 스크립트 (0) | 2017.08.18 |
| 구글 스프레드시트 그래프 - 이중 축 (0) | 2017.06.19 |
| Kakao Talk - picture restore & save / 카카오톡 사진복구 (0) | 2017.01.21 |