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

相关推荐
xiaoxue..几秒前
Vibe Coding之道:从Hulk扩展程序看Prompt工程的艺术
前端·人工智能·prompt·aigc
程序猿小蒜7 分钟前
基于springboot的汽车资讯网站开发与实现
java·前端·spring boot·后端·spring
q***98529 分钟前
前端的dist包放到后端springboot项目下一起打包
前端·spring boot·后端
鹏多多13 分钟前
vue过滤器filter的详解及和computed的区别
前端·javascript·vue.js
Mintopia13 分钟前
🚀 Trae 国际版 Max 模型升级:算力与智能的共舞
前端·人工智能·trae
Mintopia15 分钟前
🌍 WebAIGC的高算力消耗:技术优化与绿色计算路径
前端·人工智能·trae
Moment20 分钟前
LangChain 1.0 发布:agent 框架正式迈入生产级
前端·javascript·后端
yivifu35 分钟前
精益求精,支持处理嵌套表格的Word表格转HTML表格
开发语言·c#·word
亿元程序员42 分钟前
游戏接入微信登录(含上架应用市场)全流程
前端
晓得迷路了1 小时前
栗子前端技术周刊第 106 期 - pnpm 10.21、Node.js v25.2.0、Bun v1.3.2...
前端·javascript·html