Xml文档数据提取到Excel表中
近期,财务一位同事,吐槽:《某XX开票软件》导出数据文档只有Xml格式,竟然没有Excel文档,工作起来非常不方便,希望我想想办法。上图:
需求分析:Xml数据----> 提取到DataTable中---->导入到Excel中 ,难度不大,开始干起。
1、主程序窗口
2、解决方案结构
3、实现效果
4、生成Excel代码
public class ExcelHelper
{
public static void SaveToExcel(MemoryStream ms, string filePath)
{
using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write))
{
byte[] data = ms.ToArray();
fs.Write(data, , data.Length);
fs.Flush();
data = null;
}
}
public static MemoryStream DataTableToStream(DataTable dt)
{
HSSFWorkbook wk = new HSSFWorkbook();
ISheet sheet = null; string sheetName = "税务编码";
//if (!string.IsNullOrEmpty(dt.TableName))
//{
// sheetName = dt.TableName;
//}
sheet = wk.CreateSheet(sheetName);
//列头及样式
IRow headerRow = sheet.CreateRow();
ICellStyle headStyle = wk.CreateCellStyle();
headStyle.Alignment = HorizontalAlignment.Center; IFont font = wk.CreateFont();
font.FontHeightInPoints = ;
font.Boldweight = ;
font.FontName = "微雅黑体";
headStyle.SetFont(font); foreach (DataColumn column in dt.Columns) //column共属性
{
headerRow.CreateCell(column.Ordinal).SetCellValue(column.Caption); //clomun.ColumnName
headerRow.GetCell(column.Ordinal).CellStyle = headStyle; //体会
}
//第0行是标题列,第1行开始填充数据
int rowIndex = ;
foreach (DataRow row in dt.Rows)
{
//HSSFRow dataRow = (HSSFRow)sheet.CreateRow(rowIndex); //也可以这样写 IRow dataRow = sheet.CreateRow(rowIndex);//新建第1行
foreach (DataColumn column in dt.Columns)
{
dataRow.CreateCell(column.Ordinal).SetCellValue(row[column].ToString());//填充数据
}
rowIndex++;
}
using (MemoryStream ms = new MemoryStream())
{
wk.Write(ms);
ms.Flush();
return ms;
}
}
}
5、总结:利用IT技术,解决实际工作中问题,提高工作效率,是件有意义,快乐事情,催我继续前行!Mark.
Xml文档数据提取到Excel表中的更多相关文章
- Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构
分享两篇Win 10应用开发的XML文档结构:Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构. Win 10 开发中Adapt ...
- vlookup函数基本使用--如何将两个Excel表中的数据匹配;excel表中vlookup函数使用方法将一表引到另一表
vlookup函数基本使用--如何将两个Excel表中的数据匹配:excel表中vlookup函数使用方法将一表引到另一表 一.将几个学生的籍贯匹配出来‘ 二.使用查找与引用函数 vlookup 三. ...
- 读取XML文档存入泛型List<T>集合中
前一篇博文是<泛型List<T>转存为XML文档> http://www.cnblogs.com/insus/p/3277410.html 把一个List<T>集合 ...
- XPath提取xml文档数据
package itcast.dom4j; import java.io.File; import org.dom4j.Document; import org.dom4j.DocumentExcep ...
- sax解析案例(javabean封装xml文档数据)
package itcast.sax; import java.io.IOException; import java.util.List; import javax.xml.parsers.Pars ...
- 将从数据库中获取的数据写入到Excel表中
pom.xml文件写入代码,maven自动加载poi-3.1-beta2.jar <!-- https://mvnrepository.com/artifact/poi/poi --> & ...
- java中的数据导出到Excel表中
整个项目中导出数据到.Excel的源码 import java.io.BufferedOutputStream; import java.io.FileInputStream; import java ...
- python 用xlwt包把数据导出到excel表中
def write_excel(): f = xlwt.Workbook() #创建工作簿 ''' 创建第一个sheet: sheet1 ''' sheet1 = f.add_sheet(u'shee ...
- Android XML文档解析(一)——SAX解析
---------------------------------------------------------------------------------------------------- ...
随机推荐
- HDU 5438 Ponds
Ponds Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Sub ...
- 【转】使用git 工具下载android.jar Source Code
为了开发android应用,在开发时发现sdk没有源代码,这样在开发时太麻烦了,下面说说如何下载源代码,以及如何配置. 下载源代码需要git,先下载一个git.下面的操作都是在windows下完成的. ...
- RedisCluster集群搭建
搭建集群方案 安装部署任何一个应用其实都很简单,只要安装步骤一步一步来就行了.下面说一下 Redis 集群搭建规划,由于集群至少需要6个节点(3主3从模式),所以,没有这么多机器给我玩,我本地也起不了 ...
- poj 1274 The Perfect Stall 解题报告
题目链接:http://poj.org/problem?id=1274 题目意思:有 n 头牛,m个stall,每头牛有它钟爱的一些stall,也就是几头牛有可能会钟爱同一个stall,问牛与 sta ...
- codeforces 436A. Feed with Candy 解题报告
题目链接:http://codeforces.com/contest/436/problem/A 题目意思:给出 n 颗只有两种类型:fruit 和 caramel的candies,这些candies ...
- [SoapUI] Common XPath expressions
选取节点 表达式 描述 nodename 选取此节点的所有子节点. / 从根节点选取. // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置. . 选取当前节点. .. 选取当前节点的父节点 ...
- 状态空间搜索好题UVA10603
题目 分析:注意这里求的是最少流量, 二不是最少步数!!!所以我们用优先队列去维护一个最小流量,然后进行bfs即可,解释一下一个重要的数组ans[i],表示的是杯子中的水为i时的最小流量 #inclu ...
- codevs1258关路灯
传送门 1258 关路灯 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 多瑞卡得到了一份有趣而高薪的工作.每天早晨他 ...
- python-----实现print不换行
python中print输出是默认换行的,那如何我们不想换行,且需要用多个print函数输出时,就需要改变print默认换行的属性: 例: print('Hello') print('!') 输出结果 ...
- 聊聊Spring的核心组件
Spring的核心是IOC容器,它本质上是一个bean关系集合.而要实现它也是有beans,context,core三个模块完成的. beans包主要是负责bean的定义,创建和解析工作,里面用到了简 ...