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解析
---------------------------------------------------------------------------------------------------- ...
随机推荐
- OPENCV在ARM平台的移植
两篇别人推荐给我的文章,我想直接复制过来,呵呵,但一想真不好,等我做一遍了再来写一遍.还是贴链接. OpenCV在ARM上的移植:http://www.cnblogs.com/emouse/archi ...
- SVN回滚机制
引子 工作中遇到一个新同事提交代码时不知怎么的出现了大面积的代码覆盖,由于对SVN也不是特别了解,就看着别人处理问题,自己也验证性的实践了一下,总结一下. 总结 svn每一次提交成功,都会有一个`编号 ...
- LoadRunner性能测试样例分析
LR性能测试结果样例分析 测试结果分析 LoadRunner性能测试结果分析是个复杂的过程,通常可以从结果摘要.并发数.平均事务响应时间.每秒点击数.业务成功率.系统资源.网页细分图.Web服务器资源 ...
- python读取一个文件的每一行判断是否为素数,并把结果写到另一个文件中
刚刚学习python的菜鸟,这道题包括:文件的读写,python的参数调用,异常的使用,函数的使用 创建一个文本文件inti_prime.txt 执行命令:python Prime.py init_p ...
- javascript flash 弹框
1. [代码]FlashBox // JavaScript Documentfunction FlashBox(src,width,height){var docbody = document ...
- silverlight DataGrid 内嵌ComboBox 实现加载和保存
<Grid x:Name="LayoutRoot" Background="White" Height="322" Width=&qu ...
- ubuntu 源、codename 与 sources.list 文件
查看 codename $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubunt ...
- 纯CSS画WP8界面
我的手机是诺基亚920,13年4月份买的.工作之余,就想用css做一下WP8的界面效果,如上图所示.不做不知道,一做还挺难的.尤其是画那个QQ 的企鹅图标,太难画了.怎么画都不像. <!doct ...
- redhat 关机注销命令详解
一.注销,关机,重启 注销系统的logout命令 1,Logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可: [root@localhost root]# ...
- idea类名下有红色波浪线
能编译通过说明SDK导入正确,但是为啥我们点击每一个Java文件会出现好多红色的下划线 ,并提示idea cant resolve symbol 原因就是可能没有清除原来的历史缓存,导致一些错误,解决 ...