2016-12-01 32 views
-1

可能でしょうか? 上記のコードのようにValueRangeオブジェクトを更新して値を変更できますが、形式を変更する方法が見つかりませんでした。あなたが他の更新(要求を)持っている必要がありC#でGoogleシートのapi v4でセルのフォントを変更するにはどうすればよいですか?

ValueRange l_oValueRange = new ValueRange(); 
    List<object> l_olCellsNewValue = new List<object>() { DateTime.UtcNow.ToString("dd'/'MM'/'yyyy HH:mm:ss") }; 
    l_oValueRange.Values = new List<IList<object>> { l_olCellsNewValue }; 

    SpreadsheetsResource.ValuesResource.UpdateRequest l_oUpdate = service.Spreadsheets.Values.Update(
                   l_oValueRange, 
                   spreadsheetId, 
                   "A60"); 
    l_oUpdate.ValueInputOption = SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.RAW; 
    UpdateValuesResponse l_oResponse = l_oUpdate.Execute(); 
+0

あなたはシートのAPIの[ドキュメント](https://developers.google.com/sheets/samples/conditional-formatting#add_date_and_text_conditional_formatting_rules_to_a_range)、あなたが行うことができる唯一のことを確認した場合セルのフォントは単に** BOLD **と* italicize *になっています。詳細については、[条件付き書式](https://developers.google.com/sheets/guides/conditional-format)をチェックして、スプレッドシートAPIで使用できる唯一の書式を確認してください。 – KENdi

答えて

0
string spreadsheetId = "1DD3zfGe6.......UtENHhnBwz0CA"; 

//get sheet id by sheet name 
Spreadsheet spr = service.Spreadsheets.Get(spreadsheetId).Execute(); 
Sheet sh = spr.Sheets.Where(s => s.Properties.Title == sheetName).FirstOrDefault(); 
int sheetId = (int)sh.Properties.SheetId; 

//define cell color 
var userEnteredFormat = new CellFormat() 
{ 
    BackgroundColor = new Color() 
    { 
     Blue = 0, 
     Red = 1, 
     Green = (float)0.5, 
     Alpha = (float)0.1 
    }, 
    TextFormat = new TextFormat() 
    { 
     Bold = true, 
     FontFamily = "your font family", 
     FontSize = 12 
    } 
}; 
BatchUpdateSpreadsheetRequest bussr = new BatchUpdateSpreadsheetRequest(); 

//create the update request for cells from the first row 
var updateCellsRequest = new Request() 
{ 
    RepeatCell = new RepeatCellRequest() 
    { 
     Range = new GridRange() 
     { 
      SheetId = sheetId, 
      StartColumnIndex = 0, 
      StartRowIndex = 0, 
      EndColumnIndex = 28, 
      EndRowIndex = 1 
     }, 
     Cell = new CellData() 
     { 
      UserEnteredFormat = userEnteredFormat 
     }, 
     Fields = "UserEnteredFormat(BackgroundColor,TextFormat)" 
    } 
}; 
bussr.Requests = new List<Request>(); 
bussr.Requests.Add(updateCellsRequest);    
bur = service.Spreadsheets.BatchUpdate(bussr, spreadsheetId); 
bur.Execute(); 
0

BATCHUPDATE(私はGolangを使用しています)を使用して:要求がのfontFamilyが含まれている必要があり

func (s *Settings) UpdateSheet(req *sheets.Request)(*sheets.BatchUpdateSpreadsheetResponse, error) { 
    update := sheets.BatchUpdateSpreadsheetRequest{ 
     Requests: []*sheets.Request{req}, 
    } 
    return s.service.Spreadsheets.BatchUpdate(s.spreadsheetId, &update).Context(s.ctx).Do() 
} 

を、たくさんありませんこの形式の文字列を含む必要があります。"arial,sans,sans-serif"

req := &sheets.Request{ 
    RepeatCell: &sheets.RepeatCellRequest{ 
     Range: &sheets.GridRange{ 
      SheetId:  sheetId, 
      StartRowIndex: startRow, 
      EndRowIndex: endRow, 
      EndColumnIndex: endCol, 
     }, 
     Cell: &sheets.CellData{ 
      UserEnteredFormat: &sheets.CellFormat{ 
       TextFormat: &sheets.TextFormat{ 
        FontFamily:  "arial,sans,sans-serif", // The font family 
       }, 
      }, 
     }, 
    }, 
} 

https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets#textformat

TextFormat: { 
    "foregroundColor": { 
    object(Color) 
    }, 
    "fontFamily": string, 
    "fontSize": number, 
    "bold": boolean, 
    "italic": boolean, 
    "strikethrough": boolean, 
    "underline": boolean, 
} 
関連する問題