亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

WinForm導出文件為Word、Excel、文本文件的方法

2020-01-24 02:08:23
字體:
來源:轉載
供稿:網友

好久沒有寫文章了,下面把自己最近程序中用到的一個小小的導出文件的方法給在家分享一下,歡迎大家來排磚,謝謝~不說廢話了,直接上代碼:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows.Forms;using System.Threading;using Microsoft.Office.Interop.Word;using System.IO;using Microsoft.Office.Interop.Excel;using Sun.Winform.Util;namespace Sun.Winform.Files{  /// <summary>/// 將內容導出為文件類。/// </summary>/// <remarks>/// 作者:SunYujing/// 日期:2011-12-18/// </remarks>  public class ExportFile  {    /// <summary>/// 將字符串存儲為word文檔格式的文件的方法(多線程)。/// </summary>/// <param name="strText">要保存的字符串內容。</param>    public static void SaveAsWord(string p_str)    {      Thread thread = new Thread(SaveAsWordFile);      thread.SetApartmentState(ApartmentState.STA);      thread.Start(p_str);    }    /// <summary>/// 將字符串存儲為txt格式的文件的方法(多線程)。/// </summary>/// <param name="p_str"></param>    public static void SaveAsTxt(string p_str)    {      Thread thread = new Thread(SaveAsTxtFile);      thread.SetApartmentState(ApartmentState.STA);      thread.Start(p_str);    }    /// <summary>/// 導出數據表數據到Excel(多線程)。/// </summary>    public static void SaveAsExcel(System.Data.DataTable dataTable)    {      if (dataTable == null)      {        MessageUtil.ShowError("請先指定要導出的數據表");        return;      }      Thread thread = new Thread(SaveAsExcelTableFile);      thread.SetApartmentState(ApartmentState.STA);      thread.Start(dataTable);    }    /// <summary>/// 導出數據集數據到Excel(多線程)。/// </summary>    public static void SaveAsExcel(System.Data.DataSet dataSet)    {      if (dataSet == null)      {        MessageUtil.ShowError("請先指定要導出的數據集");        return;      }      Thread thread = new Thread(SaveAsExcelSetFile);      thread.SetApartmentState(ApartmentState.STA);      thread.Start(dataSet);    }    /// <summary>/// 將字符串存儲為word文檔格式的文件。/// </summary>/// <param name="strtext">要保存的字符串內容。</param>    private static void SaveAsWordFile(object strtext)    {      SaveFileDialog sfd = new SaveFileDialog();      sfd.Title = "請選擇文件存放路徑";      sfd.FileName = "導出數據";      sfd.Filter = "Word文檔(*.doc)|*.doc";      if (sfd.ShowDialog() != DialogResult.OK)      {        return;      }      string FileName = sfd.FileName.ToLower();      if (!FileName.Contains(".doc"))      {        FileName += ".doc";      }      if (FileName.Substring(FileName.LastIndexOf(Path.DirectorySeparatorChar)).Length <= 5)      {        MessageUtil.ShowThreadMessage("文件保存失敗,文件名不能為空!");        return;      }      try      {        DateTime start = DateTime.Now;        MessageUtil.ShowThreadMessage("正在保存文件,請稍候...");        Microsoft.Office.Interop.Word.ApplicationClass word = new Microsoft.Office.Interop.Word.ApplicationClass();        Microsoft.Office.Interop.Word._Document doc;        object nothing = System.Reflection.Missing.Value;        doc = word.Documents.Add(ref nothing, ref nothing, ref nothing, ref nothing);        doc.Paragraphs.Last.Range.Text = strtext.ToString();        object myfileName = FileName;        //將WordDoc文檔對象的內容保存為doc文檔        doc.SaveAs(ref myfileName, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing);        //關閉WordDoc文檔對象        doc.Close(ref nothing, ref nothing, ref nothing);        //關閉WordApp組件對象        word.Quit(ref nothing, ref nothing, ref nothing);        GC.Collect();        DateTime end = DateTime.Now;        TimeSpan ts = end - start;        MessageUtil.ShowMessage("文件保存成功,用時" + ts.ToString());      }      catch (System.Exception ex)      {        MessageUtil.ShowError(ex.Message);      }    }    /// <summary>/// 將字符串存儲為txt文檔格式的文件。/// </summary>/// <param name="strtext">要保存的字符串內容。</param>    private static void SaveAsTxtFile(object strtext)    {      SaveFileDialog sfd = new SaveFileDialog();      sfd.Title = "請選擇文件存放路徑";      sfd.FileName = "導出數據";      sfd.Filter = "文本文檔(*.txt)|*.txt";      if (sfd.ShowDialog() != DialogResult.OK)      {        return;      }      string FileName = sfd.FileName.ToLower();      if (!FileName.Contains(".txt"))      {        FileName += ".txt";      }      if (FileName.Substring(FileName.LastIndexOf(Path.DirectorySeparatorChar)).Length <= 5)      {        MessageUtil.ShowThreadMessage("文件保存失敗,文件名不能為空!");        return;      }      try      {        DateTime start = DateTime.Now;        StreamWriter sw = new StreamWriter(FileName, false);        sw.Write(strtext.ToString());        sw.Flush();        sw.Close();        DateTime end = DateTime.Now;        TimeSpan ts = end - start;        MessageUtil.ShowMessage("文件保存成功,用時" + ts.ToString());      }      catch (Exception ex)      {        MessageUtil.ShowError(ex.Message);      }    }    /// <summary>/// 將數據存儲為Excel文件。/// </summary>/// <param name="p_dt">要保存的數據表。</param>    private static void SaveAsExcelTableFile(object p_dt)    {      System.Data.DataTable dt = (System.Data.DataTable)p_dt;      if (dt.Rows.Count == 0)      {        MessageUtil.ShowError("沒有可保存的數據");        return;      }      SaveFileDialog sfd = new SaveFileDialog();      sfd.Title = "請選擇文件存放路徑";      sfd.FileName = "導出數據";      sfd.Filter = "Excel文檔(*.xls)|*.xls";      if (sfd.ShowDialog() != DialogResult.OK)      {        return;      }      string FileName = sfd.FileName.ToLower();      if (!FileName.Contains(".xls"))      {        FileName += ".xls";      }      if (FileName.Substring(FileName.LastIndexOf(Path.DirectorySeparatorChar)).Length <= 5)      {        MessageUtil.ShowThreadMessage("文件保存失敗,文件名不能為空!");        return;      }      if (sfd.FileName != "")      {        Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();        if (excelApp == null)        {          MessageBox.Show("無法創建Excel對象,可能您的機器未安裝Excel");          return;        }        else        {          MessageUtil.ShowThreadMessage("正在導出數據,請稍候...");          DateTime start = DateTime.Now;          Microsoft.Office.Interop.Excel.Workbooks workbooks = excelApp.Workbooks;          Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet);          Microsoft.Office.Interop.Excel.Worksheet worksheet = (Worksheet)workbook.Worksheets[1];          for (int col = 1; col <= dt.Columns.Count; col++)          {            worksheet.Cells[1, col] = dt.Columns[col - 1].Caption.ToString();          }          for (int i = 0; i < dt.Rows.Count; i++)          {            for (int j = 0; j < dt.Columns.Count; j++)            {              worksheet.Cells[i + 2, j + 1] = dt.Rows[i][j].ToString();            }          }          workbook.Saved = true;          workbook.SaveCopyAs(sfd.FileName);          //釋放資源          System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);          worksheet = null;          System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);          workbook = null;          workbooks.Close();          System.Runtime.InteropServices.Marshal.ReleaseComObject(workbooks);          workbooks = null;          excelApp.Quit();          System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);          excelApp = null;          //使用垃圾回收可以關閉EXCEL.EXE進程          GC.Collect();          DateTime end = DateTime.Now;          int iTimeSpan = (end.Minute - start.Minute) * 60 + (end.Second - start.Second);          MessageUtil.ShowMessage("數據導出完畢,用時" + iTimeSpan.ToString() + "秒");        }      }    }    /// <summary>/// 將數據集存儲為Excel文件。/// </summary>/// <param name="p_ds">要導出的數據集。</param>    private static void SaveAsExcelSetFile(object p_ds)    {      System.Data.DataSet ds = (System.Data.DataSet)p_ds;      if (ds == null || ds.Tables.Count == 0)      {        MessageUtil.ShowError("沒有可保存的數據");        return;      }      SaveFileDialog sfd = new SaveFileDialog();      sfd.Title = "請選擇文件存放路徑";      sfd.FileName = "導出數據";      sfd.Filter = "Excel文檔(*.xls)|*.xls";      if (sfd.ShowDialog() != DialogResult.OK)      {        return;      }      string FileName = sfd.FileName.ToLower();      if (!FileName.Contains(".xls"))      {        FileName += ".xls";      }      if (FileName.Substring(FileName.LastIndexOf(Path.DirectorySeparatorChar)).Length <= 5)      {        MessageUtil.ShowThreadMessage("文件保存失敗,文件名不能為空!");        return;      }      if (sfd.FileName != "")      {        Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();        if (excelApp == null)        {          MessageBox.Show("無法創建Excel對象,可能您的機器未安裝Excel");          return;        }        else        {          MessageUtil.ShowThreadMessage("正在導出數據,請稍候...");          DateTime start = DateTime.Now;          Microsoft.Office.Interop.Excel.Workbooks workbooks = excelApp.Workbooks;          Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet);          Microsoft.Office.Interop.Excel.Worksheet worksheet = null;          object objMissing = System.Reflection.Missing.Value;          for (int m = 0; m < ds.Tables.Count; m++)          {            System.Data.DataTable dt = ds.Tables[m];            worksheet = (Worksheet)workbook.ActiveSheet;            worksheet.Name = dt.TableName;            for (int col = 1; col <= dt.Columns.Count; col++)            {              worksheet.Cells[1, col] = dt.Columns[col - 1].Caption.ToString();            }            for (int i = 1; i <= dt.Rows.Count; i++)            {              for (int j = 1; j <= dt.Columns.Count; j++)              {                worksheet.Cells[i + 1, j] = dt.Rows[i - 1][j - 1].ToString();              }            }            if (m < ds.Tables.Count - 1)            {              workbook.Sheets.Add(objMissing, objMissing, 1, XlSheetType.xlWorksheet);            }          }          workbook.Saved = true;          workbook.SaveCopyAs(sfd.FileName);          //釋放資源          System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);          worksheet = null;          System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);          workbook = null;          workbooks.Close();          System.Runtime.InteropServices.Marshal.ReleaseComObject(workbooks);          workbooks = null;          excelApp.Quit();          System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);          excelApp = null;          GC.Collect();          DateTime end = DateTime.Now;          int iTimeSapn = (end.Minute - start.Minute) * 60 + (end.Second - start.Second);          MessageUtil.ShowMessage("數據導出完畢,用時" + (iTimeSapn / 60).ToString() + "分" + (iTimeSapn % 60).ToString() + "秒");        }      }    }  }}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
2019亚洲男人天堂| 萌白酱国产一区二区| 欧美成人免费va影院高清| 成人免费视频a| 国产亚洲精品久久久| 欧美激情亚洲激情| 国产精品色悠悠| 日韩中文字幕在线播放| 日韩精品在线电影| 亚洲日韩第一页| 51精品在线观看| 国产精品v片在线观看不卡| 美女性感视频久久久| 久久夜色精品亚洲噜噜国产mv| 丰满岳妇乱一区二区三区| 伊人亚洲福利一区二区三区| 色无极影院亚洲| 日韩av免费看网站| 成人黄色在线观看| 中文字幕日韩视频| 欧美性色19p| 午夜精品蜜臀一区二区三区免费| 91大神福利视频在线| 68精品国产免费久久久久久婷婷| 日韩在线不卡视频| 久久亚洲春色中文字幕| 欧美性感美女h网站在线观看免费| 亚洲成人精品在线| 欧美国产日韩精品| 91久久精品国产91性色| 欧美裸身视频免费观看| 日日狠狠久久偷偷四色综合免费| 成人国产精品一区| 亚洲欧美精品suv| 亚洲国产欧美一区二区三区同亚洲| 亚洲人成电影在线观看天堂色| 国产精品成人va在线观看| 日本精品久久久久影院| 精品国产老师黑色丝袜高跟鞋| 亚洲福利视频网站| 亚洲成人免费在线视频| 欧美大成色www永久网站婷| 国产精品h在线观看| 九九九久久国产免费| 欧美激情在线观看| 中文字幕亚洲天堂| 久久久久久av| 欧美日本高清一区| 欧美激情在线狂野欧美精品| 日韩成人中文字幕| 91黑丝在线观看| 亚洲人高潮女人毛茸茸| 日韩av网址在线| 91视频8mav| 日本一区二三区好的精华液| 亚洲人成电影在线| 日韩精品中文字幕在线播放| 国内精品模特av私拍在线观看| 国产精品一区二区在线| 精品自拍视频在线观看| 国产97在线亚洲| 97国产真实伦对白精彩视频8| 欧美黑人一区二区三区| 久久精彩免费视频| 欧美激情性做爰免费视频| 狠狠色狠狠色综合日日五| 国产日韩欧美在线观看| 国产丝袜一区二区三区| 日韩在线视频一区| 亚洲天堂av在线免费观看| 亚洲老司机av| 国产精品自产拍在线观看| 国产精品白嫩美女在线观看| 欧美影院久久久| 欧美激情视频在线观看| 国产亚洲精品久久久久久牛牛| 亚洲人线精品午夜| 美女国内精品自产拍在线播放| 亚洲欧洲在线播放| 欧美午夜宅男影院在线观看| 欧美视频在线观看免费网址| 日韩欧美国产一区二区| 欧美亚洲视频在线看网址| 国产精品h在线观看| 68精品国产免费久久久久久婷婷| 色综合视频网站| 精品国产精品三级精品av网址| 国产丝袜精品视频| 国产suv精品一区二区三区88区| 日韩在线观看免费| 日本韩国欧美精品大片卡二| 欧美成人精品在线播放| 国产精品1区2区在线观看| 国产精品福利无圣光在线一区| 九九热99久久久国产盗摄| 久久青草精品视频免费观看| 青青草99啪国产免费| 一区二区三区四区视频| 美女少妇精品视频| 欧美精品久久久久久久久久| 国产深夜精品福利| 2019中文字幕免费视频| 欲色天天网综合久久| 精品久久久香蕉免费精品视频| 国产精品第10页| 欧美日韩国产综合视频在线观看中文| 国产精自产拍久久久久久| 97久久超碰福利国产精品…| 26uuu久久噜噜噜噜| 久久久久国产精品免费| 欧美亚洲一区在线| 国产精品免费久久久| 国产成人亚洲精品| 中文字幕最新精品| 欧美激情一区二区三级高清视频| 91国内揄拍国内精品对白| 欧美日韩视频免费播放| 91精品中文在线| 亚洲一区二区三区sesese| 粉嫩av一区二区三区免费野| 成人看片人aa| 国产精品视频1区| 色噜噜狠狠狠综合曰曰曰| 亚洲iv一区二区三区| 91精品久久久久久久久青青| 国产福利精品在线| 欧美成人在线免费| 成人在线观看视频网站| 欧美激情国产日韩精品一区18| 欧美精品videossex性护士| 欧美国产第二页| 欧美午夜精品久久久久久久| 欧美野外猛男的大粗鳮| 日本精品视频在线| 亚洲天堂男人天堂女人天堂| 久久精品99国产精品酒店日本| 亚洲第一网站免费视频| 成人国产精品久久久久久亚洲| 久久影院在线观看| 国产精品嫩草影院久久久| 91高清视频在线免费观看| 亚洲精品免费在线视频| 日韩精品在线观看视频| 亚洲精品一区二区三区婷婷月| 国产一区红桃视频| 亚洲国产私拍精品国模在线观看| 亚洲男人av在线| 欧美视频专区一二在线观看| 日韩精品欧美激情| 国产99视频精品免视看7| 亚洲成色999久久网站| 亚洲一区亚洲二区亚洲三区| 精品福利免费观看| 51精品国产黑色丝袜高跟鞋| 国产97色在线|日韩| 久久免费成人精品视频| 欧美风情在线观看| 欧美国产高跟鞋裸体秀xxxhd| 成人激情黄色网| 久久久久国产精品免费| 国产精品久久91| 热门国产精品亚洲第一区在线| 久久国产加勒比精品无码| 亚洲黄色片网站|