C# 使用Microsoft.Office.Interop.Excel.Application对 Excel创建、写入

System.Reflection.Missing miss = System.Reflection.Missing.Value;

Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();

excel.Application.Workbooks.Add(true);

excel.Visible = false;

if (excel == null)

{

MessageBox.Show("EXCEL无法启动!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

Microsoft.Office.Interop.Excel.Workbooks books = (Microsoft.Office.Interop.Excel.Workbooks)excel.Workbooks;

Microsoft.Office.Interop.Excel.Workbook book = (Microsoft.Office.Interop.Excel.Workbook)books.Add(miss);

Microsoft.Office.Interop.Excel.Worksheet sheet = (Microsoft.Office.Interop.Excel.Worksheet)book.ActiveSheet;

sheet.Name = "Sheet";//工作薄名称

//填充列头

for (int i = 0; i < tb_result.Columns.Count; i++)

{

excel.Cells[1, i + 1] = tb_result.Columns[i].ColumnName;

}

//填充数据

for (int row = 0; row <= tb_result.Rows.Count - 1; row++)

{

for (int column = 0; column < tb_result.Columns.Count; column++)

{

//excel.Cells[row + 2, column + 1].AutoFit();

//if (tb_result.Rows[row][column].GetType() == typeof(string))

try

{

Convert.ToInt32(tb_result.Rows[row][column].ToString().Trim());

excel.Cells[row + 2, column + 1].NumberFormatLocal = "@";

excel.Cells[row + 2, column + 1] = tb_result.Rows[row][column].ToString();

}

catch

{

excel.Cells[row + 2, column + 1] = tb_result.Rows[row][column].ToString();

}

//宽度

excel.Cells[row + 2, column + 1].ColumnWidth = tb_result.Rows[row][column].ToString().Length*1.5;

if (tb_result.Rows[row][column].ToString().Length == 0)

{

excel.Cells[row + 2, column + 1].ColumnWidth = tb_result.Columns[column].ColumnName.Length * 1.5;

}

}

}

string Version = excel.Version;

int FormatNum;

if (Convert.ToDouble(Version) < 12)

{

FormatNum = -4143;

}

else

{

FormatNum = 56;

}

sheet.SaveAs(filepath, FormatNum, miss, miss, miss, miss, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, miss, miss, miss);

book.Close(false, miss, miss);

books.Close();

excel.Quit();

System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet);

System.Runtime.InteropServices.Marshal.ReleaseComObject(book);

System.Runtime.InteropServices.Marshal.ReleaseComObject(books);

System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);

GC.Collect();

相关推荐
鹏多多1 分钟前
用useTransition解决React性能卡顿问题+实战例子
前端·javascript·react.js
只愿云淡风清11 分钟前
ECharts地图数据压缩-ZigZag算法
前端·javascript·echarts
亿元程序员19 分钟前
都2025年了,还有面试问A*寻路的???
前端
Moment19 分钟前
Node.js v25.0.0 发布——性能、Web 标准与安全性全面升级 🚀🚀🚀
前端·javascript·后端
杨超越luckly24 分钟前
HTML应用指南:利用POST请求获取中国一汽红旗门店位置信息
前端·arcgis·html·数据可视化·门店数据
专注前端30年28 分钟前
【JavaScript】every 方法的详解与实战
开发语言·前端·javascript
速易达网络31 分钟前
Java Web登录系统实现(不使用开发工具)
java·开发语言·前端
唐青枫33 分钟前
C#.NET Configuration 全面解析:从多环境到强类型绑定实战
c#·.net
IT_陈寒33 分钟前
Vite 3.0 性能优化实战:5个技巧让你的构建速度提升200% 🚀
前端·人工智能·后端
金士顿36 分钟前
EC-Engineer SDK 核心 API 使用指南
前端