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();

相关推荐
冰暮流星2 分钟前
javascript如何实现删除数组里面的重复元素
开发语言·前端·javascript
刘欣的博客36 分钟前
C# 发送飞书webhook消息
c#·飞书·发消息
网络点点滴1 小时前
透传属性$attrs
前端·javascript·vue.js
90后的晨仔2 小时前
OpenClaw macOS 完整安装指南
前端
Moment2 小时前
尤雨溪宣布 Vite+ 正式开源,前端工具链要大一统了
前端·javascript·面试
sunny_2 小时前
📖 2026年 大厂前端面试手写题库已开源(2.3k star)
前端·面试·github
IT_陈寒2 小时前
Vue组件复用率提升300%?这5个高阶技巧让你的代码焕然一新!
前端·人工智能·后端
We་ct3 小时前
LeetCode 79. 单词搜索:DFS回溯解法详解
前端·算法·leetcode·typescript·深度优先·个人开发·回溯
小奶包他干奶奶3 小时前
将svg对象化,并动态修改svg图标的颜色、尺寸等
前端·html
Lee川3 小时前
React 快速入门:Vue 开发者指南
前端·vue.js·react.js