public static void Run() { // 打开Excel2007模板文档 using (PackageHelper package = new PackageHelper(Properties.Resources.BaseSpreadsheetML)) { // 加载sheet1内容到一个XmlDocument Uri sheet1Uri = new Uri(@"/xl/worksheets/sheet1.xml", UriKind.Relative); XmlDocument sheet1Xml = package.GetWritablePart(sheet1Uri); XPathNavigator sheet1Data = sheet1Xml.CreateNavigator() .SelectSingleNode("x:worksheet/x:sheetData", Namespaces.NamespaceManager); //向sheet1添加数据 using (XmlWriter writer = sheet1Data.AppendChild()) { int i; //添加标题行 Spreadsheet.SpreadsheetDoc.WriteStartRow(writer, 1); Spreadsheet.SpreadsheetDoc.WriteStringCell(writer, "A", 1, "Name"); Spreadsheet.SpreadsheetDoc.WriteStringCell(writer, "B", 1, "Email"); Spreadsheet.SpreadsheetDoc.WriteStringCell(writer, "C", 1, "Territory"); Spreadsheet.SpreadsheetDoc.WriteStringCell(writer, "D", 1, "Sub Total"); Spreadsheet.SpreadsheetDoc.WriteStringCell(writer, "E", 1, "Tax Amount"); Spreadsheet.SpreadsheetDoc.WriteStringCell(writer, "F", 1, "Freight"); Spreadsheet.SpreadsheetDoc.WriteStringCell(writer, "G", 1, "Sale Total"); writer.WriteEndElement();//关闭标题行标记 int index = 2;//从第二行开始填充数据 for (i = 0; i < 12; i++) { // 添加行开始标记 SpreadsheetDoc.WriteStartRow(writer, index); // 向单元格添加数据 Spreadsheet.SpreadsheetDoc.WriteStringCell(writer, "A", index, "Name:"+i.ToString()); Spreadsheet.SpreadsheetDoc.WriteStringCell(writer, "B", index, i.ToString()+"@metarace.com"); Spreadsheet.SpreadsheetDoc.WriteStringCell(writer, "C", index, i.ToString()); Spreadsheet.SpreadsheetDoc.WriteNumberCell(writer, "D", index, i); Spreadsheet.SpreadsheetDoc.WriteNumberCell(writer, "E", index, i); Spreadsheet.SpreadsheetDoc.WriteNumberCell(writer, "F", index, i); // write the total formula in the cell Spreadsheet.SpreadsheetDoc.WriteFormulaCell(writer, "G", index, string.Format("SUM(D{0}:F{0})", index)); // 添加行结束标记 writer.WriteEndElement(); index++; } // 添加合计 SpreadsheetDoc.WriteStartRow(writer, index); // 添加合计单元格的说明和公式 SpreadsheetDoc.WriteStringCell(writer, "F", index, "Sales Totals"); //添加公式单元格 SpreadsheetDoc.WriteFormulaCell(writer, "G", index, string.Format("SUM(G2:G{0})", index - 1)); // 关闭行 writer.WriteEndElement(); } //保存 package.SavePart(sheet1Uri, sheet1Xml); // save the shared strings SharedStrings.Save(package); // 保存到文件 package.Save("test.xlsx"); } } 以上代码中的部分方法将在下篇加以说明
转载于:https://www.cnblogs.com/blue-skies/archive/2010/07/19/1780839.html