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.Cells1, i + 1 = tb_result.Columnsi.ColumnName;

}

//填充数据

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

{

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

{

//excel.Cellsrow + 2, column + 1.AutoFit();

//if (tb_result.Rowsrowcolumn.GetType() == typeof(string))

try

{

Convert.ToInt32(tb_result.Rowsrowcolumn.ToString().Trim());

excel.Cellsrow + 2, column + 1.NumberFormatLocal = "@";

excel.Cellsrow + 2, column + 1 = tb_result.Rowsrowcolumn.ToString();

}

catch

{

excel.Cellsrow + 2, column + 1 = tb_result.Rowsrowcolumn.ToString();

}

//宽度

excel.Cellsrow + 2, column + 1.ColumnWidth = tb_result.Rowsrowcolumn.ToString().Length*1.5;

if (tb_result.Rowsrowcolumn.ToString().Length == 0)

{

excel.Cellsrow + 2, column + 1.ColumnWidth = tb_result.Columnscolumn.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();

相关推荐
星星在线13 分钟前
MusicFree:一个「All in One」的个人音乐服务器,让听歌回归简单
前端·后端
IT_陈寒1 小时前
Redis的SETNX并发问题让我加了三天班
前端·人工智能·后端
demo007x1 小时前
Docling 文档转换以及技术架构分析
前端·后端·程序员
京东云开发者2 小时前
京东市民服务又“上新”!这次是黑龙江“龙易办”
前端
袋鱼不重3 小时前
我的神奇同事,AI 用多了居然写了个 Open In Codex
前端·后端·ai编程
Fireworks3 小时前
深入vue3源码解读 -- 1、响应式的基础概念
前端
程序员黑豆3 小时前
JDK 下载安装与配置详细教程
java·前端·ai编程
hunterandroid3 小时前
文件存储:内部存储与外部存储
前端
NorBugs4 小时前
飞机大战 Low 版 (Made in AI)
前端
Non-existent9874 小时前
WPS批量清理单元格空白字符的4种方法-异常数字格式处理-实战
excel·wps