オプション
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
01-13-2025 08:34 PM
現在エクセルデータを別のもの(ServiceNow以外)の申請にコピー&ペーストで貼り付けて申請しています。
今回サービスカタログで申請フォームを作成しているのですが、エクセルの複数行データを申請フォーム(同形式の表)に同じようにコピー&ペーストで貼り付けたいです。
実現可能でしたら方法を教えてください。
解決済! 解決策の投稿を見る。
1 件の受理された解決策
オプション
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
01-16-2025 02:59 AM
たとえば、Excelの複数行をコピーして、ServiceNowのテキスト項目にペーストして(タブ区切りの文字列データになる)、そのデータをScriptでMultiRowに設定するのはどうでしょうか。
テキスト項目のonChange のScript
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue === '') {
return;
}
// クリップボードフィールドから値を取得
var clipboard = newValue;
if (!clipboard) {
return;
}
// クリップボードデータを改行で分割して各行を取得
var rows = clipboard.split('\n');
var jsonArray = [];
// MultiRowのデータ構造:各行には「name」と「quantity」の2つのカラムがあることを想定
rows.forEach(function(row) {
// 各行をタブ文字で分割してnameとquantityを取得
var columns = row.split('\t');
// 各行に少なくとも2つのカラム(nameとquantity)があるか確認
if (columns.length >= 2) {
var name = columns[0].trim();
var quantity = columns[1].trim();
// 配列にオブジェクトを追加
jsonArray.push({ name: name, quantity: quantity });
}
});
// 配列をJSON文字列に変換
var jsondata = JSON.stringify(jsonArray);
// マルチ行フィールドの値を設定
g_form.setValue('test_multi_row', jsondata);
}
1件の返信1
オプション
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
01-16-2025 02:59 AM
たとえば、Excelの複数行をコピーして、ServiceNowのテキスト項目にペーストして(タブ区切りの文字列データになる)、そのデータをScriptでMultiRowに設定するのはどうでしょうか。
テキスト項目のonChange のScript
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue === '') {
return;
}
// クリップボードフィールドから値を取得
var clipboard = newValue;
if (!clipboard) {
return;
}
// クリップボードデータを改行で分割して各行を取得
var rows = clipboard.split('\n');
var jsonArray = [];
// MultiRowのデータ構造:各行には「name」と「quantity」の2つのカラムがあることを想定
rows.forEach(function(row) {
// 各行をタブ文字で分割してnameとquantityを取得
var columns = row.split('\t');
// 各行に少なくとも2つのカラム(nameとquantity)があるか確認
if (columns.length >= 2) {
var name = columns[0].trim();
var quantity = columns[1].trim();
// 配列にオブジェクトを追加
jsonArray.push({ name: name, quantity: quantity });
}
});
// 配列をJSON文字列に変換
var jsondata = JSON.stringify(jsonArray);
// マルチ行フィールドの値を設定
g_form.setValue('test_multi_row', jsondata);
}