C#利用XML创建Excel文档的实现方法

一般来说C#在不安装Excel软件的情况下,可以通过XML来创建Excel文档。因此,运行本文所述代码您无需安装Excel程序。本文原例子是使用VB.Net写的,以下的用C#改写的代码,分享给大家,供大家参考。

具体代码如下:

DataSet mDSData = new DataSet();
mDSData.Tables.Add("myTable");
mDSData.Tables["myTable"].Columns.Add("ID");
mDSData.Tables["myTable"].Columns.Add("Name");
mDSData.Tables["myTable"].Columns.Add("PassWord");
for (int i = 0; i < 10; i++)
{
  DataRow dr = mDSData.Tables["myTable"].NewRow();
  dr["ID"] = i;
  dr["Name"] = i;
  dr["PassWord"] = i;
  mDSData.Tables["myTable"].Rows.Add(dr);
}
SaveFileDialog dialog1 = new SaveFileDialog();
dialog1.AddExtension = true;
dialog1.CheckPathExists = true;
dialog1.Filter = "Excel Workbooks (*.xls) | *.xls";
dialog1.OverwritePrompt = true;
dialog1.Title = "Save Excel Formatted Report";
if (dialog1.ShowDialog() == DialogResult.OK)
{
  int num2 = 0;
  int num3 = mDSData.Tables[0].Rows.Count + 1;
  int num1 = mDSData.Tables[0].Columns.Count;
  num2 = 0;
  string text1 = dialog1.FileName;
  if (File.Exists(text1))
  {
    File.Delete(text1);
  }
  StreamWriter writer1 = new StreamWriter(text1, false);
  StreamWriter writer2 = writer1;
  writer2.WriteLine("<?xml version=\"1.0\"?>");
  writer2.WriteLine("<?mso-application progid=\"Excel.Sheet\"?>");
  writer2.WriteLine("<Workbook xmlns=\"urn:schemas-microsoft-com:office:spreadsheet\"");
  writer2.WriteLine(" xmlns:o=\"urn:schemas-microsoft-com:office:office\"");
  writer2.WriteLine(" xmlns:x=\"urn:schemas-microsoft-com:office:excel\"");
  writer2.WriteLine(" xmlns:ss=\"urn:schemas-microsoft-com:office:spreadsheet\"");
  writer2.WriteLine(" xmlns:html=\"http://www.w3.org/TR/REC-html40\">");
  writer2.WriteLine(" <DocumentProperties xmlns=\"urn:schemas-microsoft-com:office:office\">");
  writer2.WriteLine(" <Author>Automated Report Generator Example</Author>");
  writer2.WriteLine(string.Format(" <Created>{0}T{1}Z</Created>", DateTime.Now.ToString("yyyy-mm-dd"), DateTime.Now.ToString("HH:MM:SS")));
  writer2.WriteLine(" <Company>Your Company Here</Company>");
  writer2.WriteLine(" <Version>11.6408</Version>");
  writer2.WriteLine(" </DocumentProperties>");
  writer2.WriteLine(" <ExcelWorkbook xmlns=\"urn:schemas-microsoft-com:office:excel\">");
  writer2.WriteLine(" <WindowHeight>8955</WindowHeight>");
  writer2.WriteLine(" <WindowWidth>11355</WindowWidth>");
  writer2.WriteLine(" <WindowTopX>480</WindowTopX>");
  writer2.WriteLine(" <WindowTopY>15</WindowTopY>");
  writer2.WriteLine(" <ProtectStructure>False</ProtectStructure>");
  writer2.WriteLine(" <ProtectWindows>False</ProtectWindows>");
  writer2.WriteLine(" </ExcelWorkbook>");
  writer2.WriteLine(" <Styles>");
  writer2.WriteLine(" <Style ss:ID=\"Default\" ss:Name=\"Normal\">");
  writer2.WriteLine("  <Alignment ss:Vertical=\"Bottom\"/>");
  writer2.WriteLine("  <Borders/>");
  writer2.WriteLine("  <Font/>");
  writer2.WriteLine("  <Interior/>");
  writer2.WriteLine("  <Protection/>");
  writer2.WriteLine(" </Style>");
  writer2.WriteLine(" <Style ss:ID=\"s21\">");
  writer2.WriteLine("  <Alignment ss:Vertical=\"Bottom\" ss:WrapText=\"1\"/>");
  writer2.WriteLine(" </Style>");
  writer2.WriteLine(" </Styles>");
  writer2.WriteLine(" <Worksheet ss:Name=\"MyReport\">");
  writer2.WriteLine(string.Format(" <Table ss:ExpandedColumnCount=\"{0}\" ss:ExpandedRowCount=\"{1}\" x:FullColumns=\"1\"", num1.ToString(), num3.ToString()));
  writer2.WriteLine("  x:FullRows=\"1\">");
  foreach (DataRow row1 in mDSData.Tables[0].Rows)
  {
    writer2.WriteLine("<Row>");
    for (num2 = 0; num2 != num1; num2++)
    {
      writer2.Write("<Cell ss:StyleID=\"s21\"><Data ss:Type=\"String\">");
      writer2.Write(row1[num2].ToString());
      writer2.WriteLine("</Data></Cell>");
    }
    writer2.WriteLine("</Row>");
  }
  writer2.WriteLine(" </Table>");
  writer2.WriteLine(" <WorksheetOptions xmlns=\"urn:schemas-microsoft-com:office:excel\">");
  writer2.WriteLine("  <Selected/>");
  writer2.WriteLine("  <Panes>");
  writer2.WriteLine("  <Pane>");
  writer2.WriteLine("   <Number>3</Number>");
  writer2.WriteLine("   <ActiveRow>1</ActiveRow>");
  writer2.WriteLine("  </Pane>");
  writer2.WriteLine("  </Panes>");
  writer2.WriteLine("  <ProtectObjects>False</ProtectObjects>");
  writer2.WriteLine("  <ProtectScenarios>False</ProtectScenarios>");
  writer2.WriteLine(" </WorksheetOptions>");
  writer2.WriteLine(" </Worksheet>");
  writer2.WriteLine(" <Worksheet ss:Name=\"Sheet2\">");
  writer2.WriteLine(" <WorksheetOptions xmlns=\"urn:schemas-microsoft-com:office:excel\">");
  writer2.WriteLine("  <ProtectObjects>False</ProtectObjects>");
  writer2.WriteLine("  <ProtectScenarios>False</ProtectScenarios>");
  writer2.WriteLine(" </WorksheetOptions>");
  writer2.WriteLine(" </Worksheet>");
  writer2.WriteLine(" <Worksheet ss:Name=\"Sheet3\">");
  writer2.WriteLine(" <WorksheetOptions xmlns=\"urn:schemas-microsoft-com:office:excel\">");
  writer2.WriteLine("  <ProtectObjects>False</ProtectObjects>");
  writer2.WriteLine("  <ProtectScenarios>False</ProtectScenarios>");
  writer2.WriteLine(" </WorksheetOptions>");
  writer2.WriteLine(" </Worksheet>");
  writer2.WriteLine("</Workbook>");
  writer2 = null;
  writer1.Close();
  MessageBox.Show("Report Created", "Success", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}

这只是主要的代码,使用前需要此入using相应的命名空间,如果不知道需要哪个命名空间,可在编译时根据提示逐个添加。

(0)

相关推荐

  • C#将Excel中的数据转换成DataSet

    使用C#在不借助第三方插件的情况下将Excel中的数据转换成DataSet /// <summary> /// EXCEL数据转换DataSet /// </summary> /// <param name="filePath">文件全路径</param> /// <param name="search">表名</param> /// <returns></returns>

  • C#创建、读取和修改Excel的方法

    本文实例讲述了C#创建.读取和修改Excel的方法.分享给大家供大家参考.具体如下: windows下我们可以通过 Jet OLE DB访问Excel,就行访问数据库一样 复制代码 代码如下: // Namespaces, Variables, and Constants using System; using System.Configuration; using System.Data; private OleDbDataAdapter da; private DataTable dt; p

  • C#导出生成excel文件的方法小结(xml,html方式)

    直接贴上代码,里面都有注释 复制代码 代码如下: /// <summary> /// xml格式生成excel文件并存盘;        /// </summary>        /// <param name="page">生成报表的页面,没有传null</param>        /// <param name="dt">数据表</param>        /// <param

  • C#利用Openxml读取Excel数据实例

    本文实例讲述了C#利用Openxml读取Excel数据的方法,分享给大家供大家参考.具体分析如下: 这里有些问题,如果当Cell 里面是 日期和浮点型的话,对应的Cell.DataType==Null,对应的时间会转换为一个浮点型,对于这块可以通过DateTime.FromOADate(double d)转换为时间. 可是缺点的地方就是,如果Cell.DataType ==NULL, 根本无法确认这个数据到底是 浮点型还是[被转换为了日期的浮点数].查阅了很多国外资料,的确国外博客有一部分都反映

  • C#自定义导出数据到Excel的类实例

    本文实例讲述了C#自定义导出数据到Excel的类.分享给大家供大家参考.具体如下: C#自定义Excel操作类,可以用于将DataTable导出到Excel文件,从Excel文件读取数据. using System; using System.IO; using System.Data; using System.Collections; using System.Data.OleDb; using System.Web; using System.Web.UI; using System.We

  • C#读取Excel并转化成XML的方法

    本文实例讲述了C#读取Excel并转化成Xml的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: XmlDocument excelData = new XmlDocument(); DataSet excelTableDataSet = new DataSet(); StreamReader excelContent = new StreamReader(excelFilePath, System.Text.Encoding.Default); string stringC

  • C#导出GridView数据到Excel文件类实例

    本文实例讲述了C#导出GridView数据到Excel文件类.分享给大家供大家参考.具体如下: 这段C#代码自定义了一个封装类,用于将GridView数据导出到Excel文件 using System; using System.Web; using System.Web.UI; using System.IO; using System.Web.UI.WebControls; namespace DotNet.Utilities { public class ExportExcel { pro

  • C#利用XML创建Excel文档的实现方法

    一般来说C#在不安装Excel软件的情况下,可以通过XML来创建Excel文档.因此,运行本文所述代码您无需安装Excel程序.本文原例子是使用VB.Net写的,以下的用C#改写的代码,分享给大家,供大家参考. 具体代码如下: DataSet mDSData = new DataSet(); mDSData.Tables.Add("myTable"); mDSData.Tables["myTable"].Columns.Add("ID"); mD

  • Codeigniter生成Excel文档的简单方法

    之前看了使用PHPExcel中导出数据到Excel文件的方法,但是似乎比较复杂.icech找到了一个针对Codeigniter的类:CI-Excel-Generation-Library,使用方法十分简单. 1.下载CI-Excel-Generation-Library地址:https://github.com/JOakley77/CI-Excel-Generation-Library2.将Excel.php放到libraries里面 3.使用方法: 从数据库生成excel 复制代码 代码如下:

  • C# winform打开Excel文档的方法总结(必看篇)

    C#打开Excel文档方法一:调用Excel的COM组件 在项目中打开Add Reference对话框,选择COM栏,之后在COM列表中找到"Microsoft Excel 11.0 Object Library"(Office 2003),然后将其加入到项目的References中即可.Visual C#.NET会自动产生相应的.NET组件文件,以后即可正常使用. 按钮的点击事件如下: privatevoid button1_Click(object sender, EventArg

  • Golang生成Excel文档的方法步骤

    基于数据生成 Excel 文档是一个很常见的需求,本文将介绍如何使用 Go 的 Excelize库去生成 Excel 文档,以及一些具体场景下的代码实现. 关于 Excelize 库 Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准.可以使用它来读取.写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档.支持 XLSX / XLSM / XLTM / XLTX 等多种文档

  • java后台利用Apache poi 生成excel文档提供前台下载示例

    之前在项目中会用到在Java在后台把数据填入Word文档的模板来提供前台下载,为了自己能随时查看当时的实现方案及方便他人学习我写了这篇博客,访问量已经是我写的博客里第一了.于是乎我在学会用Java在后台利用Apache poi 生成excel文档提供前台下载之后就想着来写一篇姊妹篇啦. 在生成Excel文档的时候我采用了和生成Word时的不同方法,Apache poi.它是用Java编写的免费开源的跨平台的 Java API,提供API给Java程式对Microsoft Office格式档案读和

  • dom4j创建和解析xml文档的实现方法

    DOM4J解析 特征: 1.JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能. 2.它使用接口和抽象基本类方法. 3.具有性能优异.灵活性好.功能强大和极端易用的特点. 4.是一个开放源码的文件 jar包:dom4j-1.6.1.jar 创建 book.xml: package com.example.xml.dom4j; import java.io.FileWriter; import org.dom4j.Document; import org.dom4j.Document

  • 利用python将图片转换成excel文档格式

    前言 本文主要介绍了关于利用python将图片转换成excel文档的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 实现步骤 读取图像,获取图像每个像素点的RGB值: 根据每个像素点的RGB值设置excel每个方格的颜色值: 根据像素点的坐标,写入excel文件: 保存退出: 示例代码 from PIL import Image import numpy as np import time import matplotlib.pyplot as plt import

  • jsp实现针对excel及word文档的打印方法

    本文实例讲述了jsp实现针对excel及word文档的打印方法.分享给大家供大家参考,具体如下: 因为ms word和excel的文档都支持html文本格式,因此可以先用word或excel做好模版,另存为Web页,然后将该html改成jsp,将数据部分动态填入即可,不用很辛苦的调整格式 word页面只要在jsp头设置如下指令: 复制代码 代码如下: <%@page contentType="application/msword;charset=GBK" %> excel如

  • 基于PHP与XML的PDF文档生成技术

    摘要 本论文简要介绍了PHP.XML.PDF等技术的原理以及它们的应用情况.力图运用PHP面向对象的特性,构建出一套基于PHP和XML的在线PDF文档生成系统.文中详细探讨了整个系统的组成部分以及各自的实现过程.并在最后给出一个运用这套系统实现的动态创建报表的实例. AbstractThis article introduced the fundamentls of PHP,XML and PDF and their application situation at present,expect

  • Python对excel文档的操作方法详解

    本文实例讲述了Python对excel文档的操作方法.分享给大家供大家参考,具体如下: pip安装python库:(linux命令行输入不要在idle输入) pip install xlrd pip install xlwd 1.获取excel中的数据 利用xlrd模块读取并简单操作excel文档: 1.打开excel文档 import xlrd workbook = xlrd.open_workbook("test_case.xlsx") 2.获取所有的sheet表 sheet_na

随机推荐