我有一个 Excel 从ReqPro创建的需求电子表格,我需要将其导入到TFS中。每个要求都有一个链接来自和链接到字段,这两个字段都可以包含多个条目。由于链接关系多对多,因此需要使用 direct-link 类型(不是父子)。我以为我可以使用Excel 2010导入它,但是当在Excel中使用直接链接打开查询时,结果是 flat 并且不包含链接信息。我有超过10,000个这些要求导入数千个链接所以我需要自动化这个。有没有一种简单的方法可以将多对多直接链接导入TFS?
答案 0 :(得分:1)
很抱歉,这是设计使然,请参阅microsoft connect http://connect.microsoft.com/VisualStudio/feedback/details/667973/tfs-2010-work-items-with-direct-links-query-goes-to-excel-as-a-flat-list#中提到的此错误。
然而,似乎有几种解决方法,
如果只需查看查询结果,您可以通过电子邮件或查看来自Sharepoint门户的结果作为报告。 (由于这显然是“按设计”,任何人都可以说设计不一致吗?)
如果需要编辑结果,也许您可以将查询设为“工作树项目”类型查询。
使用TFS SDK正确制作Excel文档。我做了一些调查,这是可行的,但由于我们只需要查看,#1就足够了。使生成的文档可编辑可能需要一些时间。
PS - 我可以确认我已经尝试将一个工作项目项目导出为excel并保持链接结构。另请参阅此MSDN文章,了解如何执行此操作http://msdn.microsoft.com/en-us/library/dd286627.aspx
但如果您想使用TFS API,我将在下面添加一些psudo代码, 1.使用Open XML SDK 2.0 for Microsoft Office连接到大型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 干杯,塔伦