我有一个从 ReqPro 创建的需求的Excel电子表格,我需要将其导入 TFS。每个需求都有一个linked-from和linked-to字段,这两个字段都可以包含多个条目。由于链接关系是多对多的,因此需要使用直接链接类型(而不是parent-child)。我以为我可以使用 Excel 2010 导入它,但是在 Excel 中使用直接链接打开查询时,结果是平坦的并且不包含链接信息。我有超过 10,000 个需要导入数千个链接的要求,因此我需要将其自动化。有没有一种简单的方法来导入多对多直接链接到 TFS?
1 回答
很抱歉,这是设计使然,请参阅 microsoft connect http://connect.microsoft.com/VisualStudio/feedback/details/667973/tfs-2010-work-items-with-direct-links-query-转到excel-as-a-flat-list#。
但是,似乎有几种解决方法,
如果只需要查看查询结果,您可以通过电子邮件发送或查看来自 Sharepoint 门户的结果作为报告。(由于这显然是“设计使然”,任何人都可以说设计不一致吗?)
如果需要编辑结果,也许您可以将查询设为“工作项树”类型的查询。
使用 TFS SDK 正确制作 Excel 文档。我对此进行了一些调查,它是可行的,但由于我们只需要查看,所以 #1 就足够了。使生成的文档可编辑可能需要一些时间。
PS - 我可以确认我已尝试将工作项树导出到 excel 并保持链接结构完好。另外,请参阅此 MSDN 文章,了解如何执行此操作http://msdn.microsoft.com/en-us/library/dd286627.aspx
但是,如果您愿意,可以使用 TFS API,我在下面添加了一些伪代码, 1. 使用 Microsoft Office 的 Open XML SDK 2.0 连接到大型 excel 并通读它http://msdn.microsoft.com /en-us/library/gg575571.aspx 2. 使用 TFS API 以编程方式创建工作项 3. 在工作项之间创建链接http://blogs.microsoft.co.il/blogs/shair/archive/2010/02 /27/tfs-api-part-22-create-link-between-work-item-parent-child-etc.aspx
private void ReadInformationFromExcelAndCreateLinkWorkItems()
{
using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(@"FilePath\fileName", false))
{
WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart;
WorksheetPart worksheetPart = workbookPart.WorksheetParts.First();
SheetData sheetData = worksheetPart.Worksheet.Elements<SheetData>().First();
string text;
int WorkItemId = 0;
foreach (Row r in sheetData.Elements<Row>())
{
foreach (Cell c in r.Elements<Cell>())
{
// Loop through each row till you complete one logical block of work item Links.
var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("TfsUrl"));
var wiStore = tfs.GetService<WorkItemStore>();
WorkItem wi = new WorkItem(new WorkItemType // Create a new work item of the type as in your excel)
// associate all column cell values to the work item
wi.Save();
// This should give you an ID now
WorkItemId = wi.Id;
}
}
}
}
HTH 干杯,塔伦