Có anh chị nào từng dùng google sheets để lấy dữ liệu từ MSSQL không cho em xin code với ạ!
function onOpen() {
var spreadsheet = SpreadsheetApp.getActive();
var menuItems = [
{name: 'Lấy dữ liệu', functionName: 'readData'}
];
spreadsheet.addMenu('SQLServer', menuItems);
}
var address = '171.244.39.128'; //IP của bạn
var user = 'AnhDom';
var userPwd = '1234!@#$GPe';
var db = 'Test';
var dbUrl = 'jdbc:sqlserver://' + address + ';databaseName=' + db;
function readData() {
var conn = Jdbc.getConnection(dbUrl, user, userPwd);
var stmt = conn.createStatement();
var results = stmt.executeQuery('SELECT * FROM [dbo].[tblTest]');
var metaData=results.getMetaData();
var numCols = metaData.getColumnCount();
var sheet = SpreadsheetApp.getActiveSheet();
sheet.clearContents();
var arr=[];
for (var col = 0; col < numCols; col++) {
arr.push(metaData.getColumnName(col + 1));
}
sheet.appendRow(arr);
while (results.next()) {
arr=[];
for (var col = 0; col < numCols; col++) {
arr.push(results.getString(col + 1));
}
sheet.appendRow(arr);
}
results.close();
stmt.close();
sheet.autoResizeColumns(1, numCols+1);
}
Cám ơn anh nhiều!
Bạn dùng code sau nhé:
Mã:function onOpen() { var spreadsheet = SpreadsheetApp.getActive(); var menuItems = [ {name: 'Lấy dữ liệu', functionName: 'readData'} ]; spreadsheet.addMenu('SQLServer', menuItems); } var address = '171.244.39.128'; //IP của bạn var user = 'AnhDom'; var userPwd = '1234!@#$GPe'; var db = 'Test'; var dbUrl = 'jdbc:sqlserver://' + address + ';databaseName=' + db; function readData() { var conn = Jdbc.getConnection(dbUrl, user, userPwd); var stmt = conn.createStatement(); var results = stmt.executeQuery('SELECT * FROM [dbo].[tblTest]'); var metaData=results.getMetaData(); var numCols = metaData.getColumnCount(); var sheet = SpreadsheetApp.getActiveSheet(); sheet.clearContents(); var arr=[]; for (var col = 0; col < numCols; col++) { arr.push(metaData.getColumnName(col + 1)); } sheet.appendRow(arr); while (results.next()) { arr=[]; for (var col = 0; col < numCols; col++) { arr.push(results.getString(col + 1)); } sheet.appendRow(arr); } results.close(); stmt.close(); sheet.autoResizeColumns(1, numCols+1); }
Xem link: https://docs.google.com/spreadsheets/d/1Pw9vx0f-DCFOaUYlOv--o5-a7k3t0pmVSldieFkI2VM/edit#gid=0
Tự động cập nhật là sao bạn?Cám ơn anh nhiều!
Em chạy thử rồi có điều nó hơi chậm!
Anh ơi cho em hỏi cái này nó tự động cập nhật luôn hay sao anh?
Ý em nói là khi có sự thay đổi dữ liệu trong DB thì ở google sheet nó cũng thay đổi theo đó anhTự động cập nhật là sao bạn?
À ra thế, nếu muốn đồng bộ với dữ liệu trong CSDL SQLServer thì bạn phải click nút lấy dữ liệu để có được dữ liệu mới nhất nhé.Ý em nói là khi có sự thay đổi dữ liệu trong DB thì ở google sheet nó cũng thay đổi theo đó anh
Cám ơn anh nhiều!À ra thế, nếu muốn đồng bộ với dữ liệu trong CSDL SQLServer thì bạn phải click nút lấy dữ liệu để có được dữ liệu mới nhất nhé.
Còn việc ngược lại là lưu dữ liệu từ google sheet vào SQL Server làm sao bác ơi, hỗ trợ em với
Bạn dùng code sau nhé:
Mã:function onOpen() { var spreadsheet = SpreadsheetApp.getActive(); var menuItems = [ {name: 'Lấy dữ liệu', functionName: 'readData'} ]; spreadsheet.addMenu('SQLServer', menuItems); } var address = '171.244.39.128'; //IP của bạn var user = 'AnhDom'; var userPwd = '1234!@#$GPe'; var db = 'Test'; var dbUrl = 'jdbc:sqlserver://' + address + ';databaseName=' + db; function readData() { var conn = Jdbc.getConnection(dbUrl, user, userPwd); var stmt = conn.createStatement(); var results = stmt.executeQuery('SELECT * FROM [dbo].[tblTest]'); var metaData=results.getMetaData(); var numCols = metaData.getColumnCount(); var sheet = SpreadsheetApp.getActiveSheet(); sheet.clearContents(); var arr=[]; for (var col = 0; col < numCols; col++) { arr.push(metaData.getColumnName(col + 1)); } sheet.appendRow(arr); while (results.next()) { arr=[]; for (var col = 0; col < numCols; col++) { arr.push(results.getString(col + 1)); } sheet.appendRow(arr); } results.close(); stmt.close(); sheet.autoResizeColumns(1, numCols+1); }
Xem link: Liên kết: https://docs.google.com/spreadsheets/d/1Pw9vx0f-DCFOaUYlOv--o5-a7k3t0pmVSldieFkI2VM/edit#gid=0 Liên kết: https://docs.google.com/spreadsheets/d/1Pw9vx0f-DCFOaUYlOv--o5-a7k3t0pmVSldieFkI2VM/edit#gid=0
sao lại có mail của tôi vậyCòn việc ngược lại là lưu dữ liệu từ google sheet vào SQL Server làm sao bác ơi, hỗ trợ em với
Chắc là dán liên kết nên nhúng GoogleSheet vào diễn đàn luôn ấy bác Mạnh, giao diện em dùng cũng hiện mail của em.sao lại có mail của tôi vậy
Em reply nó qua ásao lại có mail của tôi vậy
đang tò mò cái chỗ sao bài trước đó nó lại nổi lên cái mail của tôi thôi còn nếu tôi bấm vào link ra cái mail của chính tôi thì lại không có hỏiChắc là dán liên kết nên nhúng GoogleSheet vào diễn đàn luôn ấy bác Mạnh, giao diện em dùng cũng hiện mail của em.
a duyệt àEm reply nó qua á
Kiều Mạnh không có quan tâm lắm đến Google sheet, vậy là fan của addin A-Tools?đang tò mò cái chỗ sao bài trước đó nó lại nổi lên cái mail của tôi thôi còn nếu tôi bấm vào link ra cái mail của chính tôi thì lại không có hỏi
nói thật là Google sheet tôi không có quan tâm lắm nên nhiều cái không có hiểu
a duyệt à
không fan của ai cả ... lạc đề rùiKiều Mạnh không có quan tâm lắm đến Google sheet, vậy là fan của addin A-Tools?
Nay không thấy giới thiệu sản phẩm mới ra thế giới nhể?
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2