我想将文本从 C# textbox1 插入到 Google Docs 模板主体命名范围“BoddyTitle”,并将文本从 textbox2 插入主体命名范围“BoddyContent”。
因为创建的命名范围的索引会针对每次更新进行修改,所以我需要在使用新文本更新之前获取该索引的值。
请帮助获取该索引。
List <Request> requests = new List<Request>
{
};
requests.Add(new Request()
{
ReplaceNamedRangeContent = new ReplaceNamedRangeContentRequest()
{
Text = textBox1.Text, NamedRangeName = "BoddyTitle"
}
}); // Index = 5-50,
requests.Add(new Request()
{
ReplaceNamedRangeContent = new ReplaceNamedRangeContentRequest()
{
Text = textBox2.Text, NamedRangeName = "BoddyContent"
}
}); // Index = 55-10000,
BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest { Requests = requests };
dservice.Documents.BatchUpdate(body, docid).Execute();
解决了,代码在这里
List<Request> requests = new List<Request> { };
DocumentsResource.GetRequest req = dservice.Documents.Get(docid);
Document doc = req.Execute();
int max = 0;
for (int i = 0; i < doc.Body.Content.Count; i++)
{
if (doc.Body.Content[i].EndIndex.Value > max)
{
max = doc.Body.Content[i].EndIndex.Value;
}
}
if (max < 3)
{
// requests.Add(new Request() { DeleteNamedRange = new DeleteNamedRangeRequest() { Name = "BoddyTitle" } });
// requests.Add(new Request() { DeleteNamedRange = new DeleteNamedRangeRequest() { Name = "BoddyContent", } });
requests.Add(new Request() { InsertText = new InsertTextRequest() { Text = "\n\nx", Location = new Location { Index = 1 } } });
requests.Add(new Request() { InsertText = new InsertTextRequest() { Text = "\n\nx", Location = new Location() { SegmentId = "", Index = 4 } } });
requests.Add(new Request() { CreateNamedRange = new CreateNamedRangeRequest() { Name = "BoddyTitle", Range = new Range() { SegmentId = "", StartIndex = 3, EndIndex = 4 } } });
requests.Add(new Request() { CreateNamedRange = new CreateNamedRangeRequest() { Name = "BoddyContent", Range = new Range() { SegmentId = "", StartIndex = 6, EndIndex = 7 } } });
}
// requests.Add(new Request() { DeleteContentRange = new DeleteContentRangeRequest() { Range = new Range { StartIndex = 1, EndIndex = max - 1 } } });
if (textBox1.Text != "" && textBox2.Text != "")
{
requests.Add(new Request() { ReplaceNamedRangeContent = new ReplaceNamedRangeContentRequest() { Text = textBox1.Text.Replace("\r\n", "\n"), NamedRangeName = "BoddyTitle" } });
requests.Add(new Request() { ReplaceNamedRangeContent = new ReplaceNamedRangeContentRequest() { Text = textBox2.Text.Replace("\r\n", "\n"), NamedRangeName = "BoddyContent" } });
}
else { MessageBox.Show("Textbox Empty" ); }
if (requests.Count >0)
{
BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest { Requests = requests };
dservice.Documents.BatchUpdate(body, docid).Execute();Process.Start("https://docs.google.com/document/d/doc_id/edit?usp=sharing");
}