C#操作Excel

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Office.Interop.Excel;
using System.Reflection;
 
namespace ListToExcel
{
    class Program
    {
        static List<objtype> objs = new List<objtype>();
        static void Main(string[] args)
        {
            objs.Add(new objtype() { name = "allen", val = "aaa" });
            objs.Add(new objtype() { name = "allen", val = "aaa" });
            objs.Add(new objtype() { name = "allen", val = "aaa" });
            objs.Add(new objtype() { name = "allen", val = "aaa" });
            objs.Add(new objtype() { name = "allen", val = "aaa" });
            objs.Add(new objtype() { name = "allen", val = "aaa" });
            objs.Add(new objtype() { name = "allen", val = "aaa" });
            objs.Add(new objtype() { name = "allen", val = "aaa" });
            objs.Add(new objtype() { name = "allen", val = "aaa" });
            objs.Add(new objtype() { name = "allen", val = "aaa" });
            objs.Add(new objtype() { name = "allen", val = "aaa" });
            objs.Add(new objtype() { name = "allen", val = "aaa" });
            ExportDataToExcel("", "", @"c:\a.xls", "a");
        }
        /// <summary>
        /// 直接导出数据到excel
        /// </summary>
        /// <param name="connectionString">连接字符串</param>
        /// <param name="sql">查询语句</param>
        /// <param name="fileName">文件名</param>
        /// <param name="sheetName">表名</param>
        static void ExportDataToExcel(string connectionString, string sql, string fileName, string sheetName)
        {
            Application app = new Application();
            Workbook wb = app.Workbooks.Add(Missing.Value);
            Worksheet ws = wb.Worksheets.Add(Missing.Value, Missing.Value, Missing.Value, Missing.Value) as Worksheet;
            ws.Name = sheetName;
            try
            {
                int n = 0;
 
                for (int i = 1; i < objs.Count; i++)
                {
                      var excelRange = (Range)ws.Cells[i, 1];
                   excelRange.Value2 = objs[i].val;//Value2?
                   excelRange = null;
                }
            }
            catch (Exception ex)
            {
                string str = ex.Message;
            }
            finally
            {
                wb.Saved = true;
                wb.SaveCopyAs(fileName);//保存
                app.Quit();//关闭进程
            }
        }
    }
    class objtype
    {
        public string name { get; set; }
        public string val { get; set; }
    }
}
posted @   liulun  阅读(1102)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示