好久没有写文章了,下面把自己最近程序中用到的一个小小的导出文件的方法给在家分享一下,欢迎大家来排砖,谢谢~不说废话了,直接上代码:
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
{
///
/// 将内容导出为文件类。
///
///
/// 作者:SunYujing
/// 日期:2011-12-18
///
public class ExportFile
{
///
/// 将字符串存储为word文档格式的文件的方法(多线程)。
///
/// 要保存的字符串内容。
public static void SaveAsWord(string p_str)
{
Thread thread = new Thread(SaveAsWordFile);
thread.SetApartmentState(ApartmentState.STA);
thread.Start(p_str);
}
///
/// 将字符串存储为txt格式的文件的方法(多线程)。
///
///
public static void SaveAsTxt(string p_str)
{
Thread thread = new Thread(SaveAsTxtFile);
thread.SetApartmentState(ApartmentState.STA);
thread.Start(p_str);
}
///
/// 导出数据表数据到Excel(多线程)。
///
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);
}
///
/// 导出数据集数据到Excel(多线程)。
///
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);
}
///
/// 将字符串存储为word文档格式的文件。
///
/// 要保存的字符串内容。
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
/// 将字符串存储为txt文档格式的文件。
///
/// 要保存的字符串内容。
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
/// 将数据存储为Excel文件。
///
/// 要保存的数据表。
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
/// 将数据集存储为Excel文件。
///
/// 要导出的数据集。
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