C# 以编程方式对Excel电子表格进行排序
我正在使用OpenXML操作Excel文件 我将Excel文件作为内存流发送,编辑它们,然后将它们发送回浏览器,以便它们在客户端office程序中打开。我使用以下代码创建新的电子表格:C# 以编程方式对Excel电子表格进行排序,c#,excel,sharepoint,ms-office,openxml,C#,Excel,Sharepoint,Ms Office,Openxml,我正在使用OpenXML操作Excel文件 我将Excel文件作为内存流发送,编辑它们,然后将它们发送回浏览器,以便它们在客户端office程序中打开。我使用以下代码创建新的电子表格: public static void InsertWorksheet(string docName) { using (SpreadsheetDocument spreadSheet = SpreadsheetDocument.Open(docName, true)) { // Add a blank
public static void InsertWorksheet(string docName)
{
using (SpreadsheetDocument spreadSheet = SpreadsheetDocument.Open(docName, true))
{
// Add a blank WorksheetPart.
WorksheetPart newWorksheetPart = spreadSheet.WorkbookPart.AddNewPart<WorksheetPart>();
newWorksheetPart.Worksheet = new Worksheet(new SheetData());
Sheets sheets = spreadSheet.WorkbookPart.Workbook.GetFirstChild<Sheets>();
string relationshipId = spreadSheet.WorkbookPart.GetIdOfPart(newWorksheetPart);
// Get a unique ID for the new worksheet.
uint sheetId = 1;
if (sheets.Elements<Sheet>().Count() > 0)
{
sheetId = sheets.Elements<Sheet>().Select(s => s.SheetId.Value).Max() + 1;
}
// Give the new worksheet a name.
string sheetName = "Sheet" + sheetId;
// Append the new worksheet and associate it with the workbook.
Sheet sheet = new Sheet() { Id = relationshipId, SheetId = sheetId, Name = sheetName };
sheets.Append(sheet);
}
}
publicstaticvoidinsertworksheet(字符串docName)
{
使用(SpreadsheetDocument电子表格=SpreadsheetDocument.Open(docName,true))
{
//添加空白工作表部件。
WorksheetPart newWorksheetPart=电子表格.WorkbookPart.AddNewPart();
newWorksheetPart.Worksheet=新工作表(new SheetData());
Sheets Sheets=电子表格.WorkbookPart.Workbook.GetFirstChild();
string relationshipId=电子表格.WorkbookPart.GetIdOfPart(新工作表部件);
//获取新工作表的唯一ID。
uint sheetId=1;
如果(sheets.Elements().Count()>0)
{
sheetId=sheets.Elements()。选择(s=>s.sheetId.Value)。Max()+1;
}
//为新工作表命名。
string sheetName=“Sheet”+sheetId;
//附加新工作表并将其与工作簿关联。
Sheet Sheet=new Sheet(){Id=relationshipId,SheetId=SheetId,Name=sheetName};
附页(页);
}
}
我的问题是,此工作表是在工作簿中的工作表中最后添加的。我希望它是第1张。我正在寻找如何将新创建的图纸设置为1号图纸的技巧 也许可以代替
工作表。追加你称之为在开头插入它的东西吗?是否有Insert
或Prepend
方法?是的,确实有。谢谢你的提示。这就成功了:sheets.InsertAt(sheet,0);