利用XML生成Excel

先用Excel将我们要生成的表格设计好:

 


然后另存为
XML表格:

 



将生成的
Book1.xml复制到项目中并打开:

 



找到
Table节点,将节点的ss:ExpandedRowCount=”2” 删除掉

 



往下会看到我们刚输入的标题了吧

<Row>

    <Cell ss:StyleID="s23"><Data ss:Type="String">姓名</Data></Cell>

    <Cell ss:StyleID="s23"><Data ss:Type="String">成绩</Data></Cell>

   </Row>

下面就是数据

   <Row>

    <Cell ss:StyleID="s24"><Data ss:Type="String">张三</Data></Cell>

    <Cell ss:StyleID="s24"><Data ss:Type="Number">80</Data></Cell>

   </Row>

 

将数据Row剪切并替换成 {0}

<Table ss:ExpandedColumnCount="2" ss:ExpandedRowCount="2" x:FullColumns="1"

   x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="14.25">

   <Row>

    <Cell ss:StyleID="s23"><Data ss:Type="String">姓名</Data></Cell>

    <Cell ss:StyleID="s23"><Data ss:Type="String">成绩</Data></Cell>

   </Row>

 {0}

 </Table>

 

好了,可以开始写程序了。

DataTable dtData = new DataTable();

dtData的数据为 (姓名,成绩)

//这里就是刚在在XML里剪切掉的Row

string Row = @ <Row>

    <Cell ss:StyleID=""s24""><Data ss:Type=""String"">{0}</Data></Cell>

    <Cell ss:StyleID=""s24""><Data ss:Type=""Number"">{1}</Data></Cell>

   </Row>;

List<string> Rows = new List<string>();

foreach(DataRow dr in dtData.Rows)

{

Rows.Add(string.Format(Row,dr[姓名],dr[成绩]));
}

 

StreamReader reader = new StreamReader(XML名称.xml);

StreamWriter writer = new StreamWriter(新的Excel.xls)

 

writer. Write(reader.ReadToEnd(),String.Join("r"n,Row.ToArray()));

writer.Flush();

writer.Close();

reader.Close();

转载于:https://www.cnblogs.com/wuxing/archive/2009/08/28/1555857.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406723.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue获取前一个页面路由地址

可以使用&#xff1a; vue-router的beforeRouterEnter钩子 其实也就是一个路由守卫 <script> export default {data() {return {fromPath: "",};},beforeRouteEnter(to, from, next) {next((vm) > {// 通过 vm 访问组件实例,将值传入fromPathvm.fromPath …

display:none和visibility:hidden两者的区别

使用css让元素不可见的方法有很多种&#xff0c;裁剪、定位到屏幕外边、透明度变换等都是可以的。但是最常用两种方式就是设置元素样式为display: none或者visibility: hidden。很多公司的面试官也常常会问面试者这两者之间的区别。 display与元素的隐藏 如果给一个元素设置了…

CSS中设置border属性为0与none的区别

在我们设置CSS的时候&#xff0c;对标签元素不设置边框属性或者取消边框属性一般设置为&#xff1a;border:none;或border:0;两种方法均可。 border:none;与border:0;的区别体现有两点&#xff1a;一是理论上的性能差异&#xff1b;二是浏览器兼容性的差异。 1.性能差异 【b…

windows下Python+Editplus windows Python开发环境

From: http://www.jb51.net/softjc/34898.html 点评&#xff1a;Python的安装程序以及源代码可以从其官方网站http://www.python.org/获取。以Windows XP、Python 3.1.3为例&#xff0c;在Windows下安装Python的过程如下。&#xff08;1&#xff09;从Python官方网站 http://…

PHP Fatal error: Uncaught think\\exception\\ErrorException: error_log相关解决方法

解决方法&#xff1a;切换到tp5目录然后使用chmod -R 777 tp5来解决&#xff0c;当然不太建议这样做&#xff0c;这不符合我们在线上的操作方式。一种比较推荐的做法是执行chmod -R daemon:daemon tp5来进行处理&#xff0c;这是因为在Mac上默认的Apache用户为daemon&#xff0…

旋转动画用控件RotateView

旋转动画用控件RotateView 最终效果&#xff1a; 源码&#xff1a; RotateView.h 与 RotateView.m // // RotateView.h // RotateAnimationView // // Created by YouXianMing on 14/12/8. // Copyright (c) 2014年 YouXianMing. All rights reserved. //#import <UIKit…

UPS分类:直流UPS和交流UPS

以下资料来源于IT168术语详解&#xff1a;http://detail.it168.com/UPS从结构上一般分为直流UPS(DC-UPS)和交流UPS(AC-UPS)两大类。(1)直流UPS直流不间断电源由两个基本单元组成。分别是整流器、蓄电池。其原理结构方框图如下&#xff1a;其工作过程是&#xff1a;当市电正常时…

HTTP1.0和HTTP1.1和HTTP2.0的区别

HTTP1.0和HTTP1.1和HTTP2.0的区别 1 HTTP1.0和HTTP1.1的区别 1.1 长连接(Persistent Connection) HTTP1.1支持长连接和请求的流水线处理&#xff0c;在一个TCP连接上可以传送多个HTTP请求和响应&#xff0c;减少了TCP的建立和关闭连接的消耗和延迟&#xff0c;在HTTP1.1中默…

PowerShell实战1:Ping_Test

功能&#xff1a;批量测试远程主机的Ping值&#xff0c;以及根据TTL值来判断是否为Windows主机。使用&#xff1a;在C:\IP.txt中加入需要测试的主机IP或域名&#xff0c;一行一个。例如&#xff1a; www.google.com www.baidu.com www.cha123.com www.yahoo.com www.msn.com源码…

TCP建立连接与断开连接的过程

在CS模式的TCP连接建立过程中&#xff0c;客户端与服务器端流程如下&#xff1a; 客户端流程&#xff1a;发送请求->接收服务器端确认->发送对服务器端确认的确认。 服务器端流程&#xff1a;接收客户端的连接建立请求->发送确认->接收客户端发送的对确认的确认。…

Android控件捕获点击事件的范围

View的Tween动画过程中点击事件的位置并不会因为动画位置的改变而改变&#xff0c;是因为在动画过程中layout的位置实际上没有变&#xff0c;因此曾经一度认为View的点击事件&#xff08;其实不仅仅是点击事件&#xff0c;包括所有的触摸事件&#xff09;触发的范围是该View在l…

利用闭包实现onclick事件传递参数

当触发点击事件&#xff0c;一个简单的例子。 <!DOCTYPE html> <html> <head><title>闭包创建数组</title><meta charset"utf-8"><script type"text/javascript">window.onload function (){var lis documen…

Python中文全攻略

From: http://www.sqlite.com.cn/MySqlite/11/395.Html 1. 在Python中使用中文 在Python中有两种默认的字符串&#xff1a;str和unicode。在Python中一定要注意区分“Unicode字符串”和“unicode对象”的区别。后面所有的“unicode字符串”指的都是python里的“unicode…