近期,财务一位同事,吐槽:《某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表中的更多相关文章

  1. Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构

    分享两篇Win 10应用开发的XML文档结构:Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构. Win 10 开发中Adapt ...

  2. vlookup函数基本使用--如何将两个Excel表中的数据匹配;excel表中vlookup函数使用方法将一表引到另一表

    vlookup函数基本使用--如何将两个Excel表中的数据匹配:excel表中vlookup函数使用方法将一表引到另一表 一.将几个学生的籍贯匹配出来‘ 二.使用查找与引用函数 vlookup 三. ...

  3. 读取XML文档存入泛型List<T>集合中

    前一篇博文是<泛型List<T>转存为XML文档> http://www.cnblogs.com/insus/p/3277410.html 把一个List<T>集合 ...

  4. XPath提取xml文档数据

    package itcast.dom4j; import java.io.File; import org.dom4j.Document; import org.dom4j.DocumentExcep ...

  5. sax解析案例(javabean封装xml文档数据)

    package itcast.sax; import java.io.IOException; import java.util.List; import javax.xml.parsers.Pars ...

  6. 将从数据库中获取的数据写入到Excel表中

    pom.xml文件写入代码,maven自动加载poi-3.1-beta2.jar <!-- https://mvnrepository.com/artifact/poi/poi --> & ...

  7. java中的数据导出到Excel表中

    整个项目中导出数据到.Excel的源码 import java.io.BufferedOutputStream; import java.io.FileInputStream; import java ...

  8. python 用xlwt包把数据导出到excel表中

    def write_excel(): f = xlwt.Workbook() #创建工作簿 ''' 创建第一个sheet: sheet1 ''' sheet1 = f.add_sheet(u'shee ...

  9. Android XML文档解析(一)——SAX解析

    ---------------------------------------------------------------------------------------------------- ...

随机推荐

  1. 使用libcurl的包装库cpr发起http请求

    cpr GitHub地址https://github.com/whoshuu/cpr 简单示例:cpr_http_request.cpp #include <iostream> #incl ...

  2. 在Windows上使用libcurl发起HTTP请求

    curl下载地址https://curl.haxx.se/download.html 当前最新版本为7.61.0 将下载的curl-7.61.0.zip解压,得到curl-7.61.0 在目录curl ...

  3. codeforces 667B B. Coat of Anticubism(水题)

    题目链接: B. Coat of Anticubism time limit per test 1 second memory limit per test 256 megabytes input s ...

  4. Sorting a Three-Valued Sequence

    链接 分析:首先我们先对其进行排序,并看排序以后有多少个元素顺序是对的,接着我们看有多少个元素经过一次交换可以得到的,最后剩下的元素就是经过两次交换可以得到的了. /* PROB:sort3 ID:w ...

  5. chorme dev tools的小技巧

    1 快速文件转换 在DevTools打开的时候,你可以按下Ctrl+P来快速的寻找和打开你工程中的任意文件. 2 在源代码中搜索 Ctrl+Shift+F 即可在所有已加载的文件中查找一个特定的字符串 ...

  6. django上课笔记5-FK关联

    一.FK关联 FK关联 url.py里 from app01 import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r' ...

  7. Get back Typing Break in Ubuntu 12.04 & 11.10(转载)

    转自:http://ubuntuguide.net/get-back-typing-break-in-ubuntu-12-04-11-10 Since Ubuntu 11.10 Oneiric, th ...

  8. mq4参考

    更新: 2017/05/24 其实也就是照搬文档,主要是用到一个记一个.方便掌握 ----------------------------------------------------------- ...

  9. pip 安装出现提示

    The directory '/home/zdj/.cache/pip/http' or its parent directory is not owned by the current user a ...

  10. hud3371 Connect the Cities 简单最小生成树

    //我看过Discuss说不能用克鲁斯卡尔因为有很多边 //但是只能用G++过,C++的确超时 #include <stdio.h> #include <string.h> # ...