J'essaie de renseigner automatiquement des données brutes sur une feuille de mon fichier de feuilles Google avec une requête.
Il ne semble pas que les feuilles aient une fonctionnalité intégrée comme Microsoft Excel.
Est-ce que je manque quelque chose? J'ai trouvé un module complémentaire qui a depuis été abandonné et ne fonctionne plus, appelé données partout: https://www.dataeverywhere.com/use-database-sheets
Y at-il autre chose qui a remplacé cela?
Comme indiqué ici , vous pouvez utiliser les services JDBC de Google Apps Scripts . Vous devrez écrire un script qui remplit votre feuille de calcul avec les données du service JDBC.
Cet exemple montre comment lire un grand nombre d'enregistrements à partir de la base de données, en boucle si nécessaire sur l'ensemble de résultats.
// Replace the variables in this block with real values.
var address = 'database_IP_address';
var user = 'user_name';
var userPwd = 'user_password';
var db = 'database_name';
var dbUrl = 'jdbc:mysql://' + address + '/' + db;
// Read up to 1000 rows of data from the table and log them.
function readFromTable() {
var conn = Jdbc.getConnection(dbUrl, user, userPwd);
var start = new Date();
var stmt = conn.createStatement();
stmt.setMaxRows(1000);
var results = stmt.executeQuery('SELECT * FROM entries');
var numCols = results.getMetaData().getColumnCount();
while (results.next()) {
var rowString = '';
for (var col = 0; col < numCols; col++) {
rowString += results.getString(col + 1) + '\t';
}
Logger.log(rowString)
}
results.close();
stmt.close();
var end = new Date();
Logger.log('Time elapsed: %sms', end - start);
}
J'espère que cela t'aides!
Si vous ne voulez pas lancer votre propre solution, consultez SeekWell . Il vous permet de vous connecter à des bases de données et d’écrire des requêtes SQL directement dans Sheets.
Quelques autres fonctionnalités:
Disclaimer: J'ai fait ceci.
"Navigateur de base de données" est une solution prête à l'emploi disponible en tant que add-on dans GSuite Marketplace pour se connecter aux bases de données et interroger (avec le constructeur de requêtes) la base de données et importer directement les résultats dans la feuille Google.
Cet add-on maintient également la liste des connexions et des requêtes, ce qui facilite sa ré-exécution. Si vous recherchez une alternative au module complémentaire que vous avez mentionné, le navigateur de base de données est un bon choix.
Ceci est l'exemple de code permettant de lire les données d'une instance SQL Server et de les insérer dans Google Sheet. Le code crée un élément de menu pour recharger les données et efface chaque fois le contenu pendant qu'il conserve le format.
function onOpen() {
var spreadsheet = SpreadsheetApp.getActive();
var menuItems = [
{name: 'Get Data', functionName: 'readData'}
];
spreadsheet.addMenu('My Functions', menuItems);
}
// Replace the variables in this block with real values.
var address = 'ip-address:port'; //ex. '10.1.1.1:1433'
var user = 'db-username';
var userPwd = 'db-password';
var db = 'db-name';
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].[User]');
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);
}