最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#利用XML創(chuàng)建Excel文檔的實(shí)現(xiàn)方法

 更新時(shí)間:2014年08月12日 12:08:30   投稿:shichen2014  
這篇文章主要介紹了C#利用XML創(chuàng)建Excel文檔的實(shí)現(xiàn)方法,需要的朋友可以參考下

一般來說C#在不安裝Excel軟件的情況下,可以通過XML來創(chuàng)建Excel文檔。因此,運(yùn)行本文所述代碼您無需安裝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相應(yīng)的命名空間,如果不知道需要哪個(gè)命名空間,可在編譯時(shí)根據(jù)提示逐個(gè)添加。

相關(guān)文章

  • c# wpf如何更好的使用Application程序集資源

    c# wpf如何更好的使用Application程序集資源

    這篇文章主要介紹了c# wpf如何更好的使用Application程序集資源,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-04-04
  • C#條件拼接Expression<Func<T, bool>>的使用

    C#條件拼接Expression<Func<T, bool>>的使用

    本文主要介紹了C#條件拼接Expression<Func<T, bool>>的使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C#開發(fā)Winform實(shí)現(xiàn)文件操作案例

    C#開發(fā)Winform實(shí)現(xiàn)文件操作案例

    這篇文章介紹了C#開發(fā)Winform實(shí)現(xiàn)文件操作的案例,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • C#之IP地址和整數(shù)互轉(zhuǎn)的小例子

    C#之IP地址和整數(shù)互轉(zhuǎn)的小例子

    C#之IP地址和整數(shù)互轉(zhuǎn)的小例子,需要的朋友可以參考一下
    2013-03-03
  • C#中的委托delegate用法的示例詳解

    C#中的委托delegate用法的示例詳解

    這篇文章主要介紹了C#中的委托用法的示例詳解。本章將由淺入深地講述什么是委托、為什么要使用委托、事件的由來、.NET Framework 中的委托和事件、委托中方法異常和超時(shí)的處理、委托與異步編程、委托和事件對(duì)Observer 設(shè)計(jì)模式的意義。感興趣的可以了解一下
    2020-07-07
  • c#圖片添加水印的實(shí)例代碼

    c#圖片添加水印的實(shí)例代碼

    這篇文章介紹了c#圖片添加水印的實(shí)例代碼,有需要的朋友可以參考一下
    2013-07-07
  • 使用C#判斷一個(gè)字符串是否包含大寫字符的五種方法

    使用C#判斷一個(gè)字符串是否包含大寫字符的五種方法

    本文提供了五種判斷字符串是否包含大寫字符的方法及其實(shí)現(xiàn)源碼,文中通過代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-12-12
  • C# 使用模式匹配的好處總結(jié)

    C# 使用模式匹配的好處總結(jié)

    模式匹配的這些用途展示了它在簡(jiǎn)化代碼、提高可讀性和靈活處理不同類型和條件的強(qiáng)大能力,隨著C#語(yǔ)言的發(fā)展,模式匹配的功能和應(yīng)用場(chǎng)景將會(huì)進(jìn)一步擴(kuò)展和深化,這篇文章主要介紹了C# 使用模式匹配的好處,需要的朋友可以參考下
    2024-07-07
  • 基于Kubernetes實(shí)現(xiàn)前后端應(yīng)用的金絲雀發(fā)布(兩種方案)

    基于Kubernetes實(shí)現(xiàn)前后端應(yīng)用的金絲雀發(fā)布(兩種方案)

    這篇文章主要介紹了基于Kubernetes實(shí)現(xiàn)前后端應(yīng)用的金絲雀發(fā)布,文中給大家提到了兩種常用方案,通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-12-12
  • C# 獲取程序集版本、文件版本

    C# 獲取程序集版本、文件版本

    C# 獲取程序集版本、文件版本的實(shí)現(xiàn)代碼。
    2009-09-09

最新評(píng)論

高要市| 浏阳市| 胶南市| 大余县| 巴东县| 武川县| 新闻| 建阳市| 睢宁县| 镶黄旗| 江孜县| 新干县| 扎兰屯市| 兰考县| 重庆市| 彭州市| 尚义县| 社会| 奎屯市| 会昌县| 崇文区| 金昌市| 马鞍山市| 长汀县| 涡阳县| 婺源县| 集安市| 衡南县| 沂源县| 达日县| 仁怀市| 资兴市| 宁国市| 阜新| 呼图壁县| 达州市| 西乌珠穆沁旗| 客服| 西乌珠穆沁旗| 陈巴尔虎旗| 门头沟区|