OpenXml开发-向Excel2007文档中添加数据
2010-07-19 17:54
281 查看
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");
}
}
以上代码中的部分方法将在下篇加以说明
{
// 打开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");
}
}
以上代码中的部分方法将在下篇加以说明
相关文章推荐
- Android官方开发文档Training系列课程中文版:分享简单数据之添加简单的分享行为
- OpenXml开发-向文档中添加样式
- Android官方开发文档Training系列课程中文版:后台加载数据之处理CursorLoader的查询结果
- Android官方开发文档Training系列课程中文版:添加ActionBar之ActionBar浮层效果
- iphone开发之表格组件UITableView的使用(二)如何分组展示数据并添加组头和组尾描述
- 【Android游戏开发之六】在SurfaceView中添加组件!!!!并且相互交互数据!!!!
- Iphone开发(十一)从plist文件读取列表数据并添加索引
- 数据报表开发技巧:自动为数据报表添加【小计】、【总计】行
- Android官方开发文档Training系列课程中文版:数据存储之文件存储
- 使用OpenXml SDK向Word文档中添加页、段落、页眉和页脚
- // 编写一个程序,在E盘下创建一个abc.txt的文本文档,通过输出流在文档内添加数据,然后在把abc.txt复制到F盘下
- 【Android游戏开发之六】在SurfaceView中添加组件!!!!并且相互交互数据!!!!
- 使用OpenXml向空白文档添加一个带表格线的表
- OpenXml开发-向文档中插入图片
- 使用jqMobi开发app基础:Scrolling的使用,向上向下拖动,动态添加数据
- android开发--详解ListView,动态添加,删除Adapter中的数据项
- struts2 整合 Spring开发,简单数据添加小例子
- 【iOS开发-76】Private Contacts案例:导航控制器使用、数据传递、第三方类库使用、tableViewCell的添加删除、数据存储等
- POI 读取Excel文档中的数据——兼容Excel2003和Excel2007
- 嵌入式开发之davinci--- 8148/8168/8127 中的添加算饭scd 场景检测 文档简介