using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Data;
using System.Runtime.InteropServices;
using System.Configuration;
using System.Reflection;
using System.ComponentModel;
using System.IO;
using System.Web;
using System.Data.OleDb;
namespace Business.Common
{
public class ExcelOperate
{
//[DllImport("User32.dll", CharSet = CharSet.Auto)]
//public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID);
/// <summary>
/// 获取导出路径
/// </summary>
public string filepath = ConfigurationManager.AppSettings["ExcelPath"];
/// <summary>
/// 获取下载地址
/// </summary>
public string fileUrl = ConfigurationManager.AppSettings["ExcelUrl"];
#region 单例
/// <summary>
/// 同步体
/// </summary>
private static object mSyn = new object();
/// <summary>
/// 唯一实例
/// </summary>
private static ExcelOperate mInstance;
/// <summary>
/// 获取对象
/// </summary>
public static ExcelOperate Instance
{
get
{
// 非空判断
if (mInstance == null)
{
// 锁定
lock (mSyn)
{
// 非空判断
if (mInstance == null)
{
mInstance = new ExcelOperate();
}
}
}
return mInstance;
}
}
/// <summary>
/// 私有构造函数
/// </summary>
private ExcelOperate()
{
}
#endregion 单例 结束
/// <summary>
/// 将数据集中的数据导出到EXCEL文件
/// </summary>
/// <param name="dataSet">输入数据集</param>
/// <param name="isShowExcle">是否显示该EXCEL文件</param>
/// <returns>返回下载地址或错误消息</returns>
/*public string DataTableToExcel(System.Data.DataTable dt,string fileName)
{
string url = "";
int rowNumber = dt.Rows.Count;//不包括字段名
int columnNumber = dt.Columns.Count;
int colIndex = 0;
if (rowNumber == 0)
{
return "没有数据!";
}
Application excel = new Application();
System.Reflection.Missing miss = System.Reflection.Missing.Value;
Workbook workbook = null;
Worksheet worksheet = null;
Range range;
workbook = excel.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
worksheet = (Worksheet)workbook.Worksheets[1];
//设置对象不可见
excel.Visible = false;
excel.DisplayAlerts = false;
try
{
//生成字段名称
foreach (DataColumn col in dt.Columns)
{
colIndex++;
excel.Cells[1, colIndex] = col.ColumnName;
}
object[,] objData = new object[rowNumber, columnNumber];
for (int r = 0; r < rowNumber; r++)
{
for (int c = 0; c < columnNumber; c++)
{
objData[r, c] = dt.Rows[r][c];
}
}
// 写入Excel,第一行写列名,从第二行开始写数据
range = worksheet.Range[excel.Cells[2, 1], excel.Cells[rowNumber + 1, columnNumber]];
range.NumberFormat = "@";//设置单元格为文本格式
range.Value2 = objData;
//保存工作表
fileName = fileName + DateTime.Now.ToString("yyyyMMddhhmmss") + ".xlsx";
workbook.SaveAs(filepath + fileName, miss, miss, miss, miss, miss, XlSaveAsAccessMode.xlNoChange, miss, miss, miss);
workbook.Close(false, miss, miss);
导出Excel--不用安装office
最新推荐文章于 2024-05-17 06:00:02 发布