本博客还有大量的.NET开源技术文章,您可能感兴趣:
1.开源Math.NET基础数学类库使用系列文章:链接
2.开源C#彩票数据资料库系列文章:链接
3.开源的.NET平台ORM组件文章:链接
4.其他开源的.NET组件文章:链接
5..NET平台机器学习组件-Infer.NET系列文章:链接
6.Matlab混合编程文章:链接
最近在做一个小工具,需要将.NET中计算的二维数组和交错数组的数据导入到Excel文件中,到博客园找了一下,有不少前辈已经贴了很完善的代码。我稍微改进了下,特意再次分享。由于比较乱,下面代码的出处不知在哪(只知道在博客园),在此谢过。当然先要应用Interop.Excel.
using Excel ;
......

Code/// <summary>
/// 将一维数组转换到Excel文件中:
/// 目前支持的数据类型有:DataTable,二维数组,二维交错数组,DataGridView,ArrayList
/// </summary>
/// <param name="data">数据对象</param>
/// <param name="xlsSaveFileName">保存为Excel的文件名</param>
/// <returns>是否保存成功</returns>
public static bool ConvertDataToExcel<T>(T[] data,string xlsSaveFileName)
{
//在做这些前,将Excl添加到引用中来!!
Excel.Application excel = new Excel.Application();
//如果系统是Excl2007,添加的引用会不一样
//代码如下:Microsoft.Office.Interop.Excel.Application excel
//= new Microsoft.Office.Interop.Excel.Application();
if (excel == null)
{
return false;
}
else
{
try
{
Excel.Workbook xlBook = excel.Workbooks.Add(true);
Excel.Worksheet xlSheet = (Excel.Worksheet)xlBook.Worksheets[1];
//导入数据
for (int i = 0; i <data.Length ; i++)
{
if (data[i]!=null )
{
excel.Cells[1,i + 1] = data[i ].ToString().Trim();
}
}
xlBook.Saved = true; //保存文件
xlBook.SaveCopyAs(xlsSaveFileName);
return true;
}
catch
{
return false;
}
finally
{
//关闭excel对象,否则会在内存中存在很多excel进程
excel.Quit();
excel = null;
GC.Collect();
}
}
}
/// <summary>
/// 将二维数组数据导入到Excel中
/// </summary>
/// <param name="data">数据</param>
/// <param name="xlsSaveFileName">保存的文件名(路径)</param>
/// <returns>是否保存成功</returns>
public static bool ConvertDataToExcel<T>(T[,] data,string xlsSaveFileName)
{
//在做这些前,将Excl添加到引用中来!!
Excel.Application excel = new Excel.Application();
//如果系统是Excl2007,添加的引用会不一样,代码如下:Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
if (excel == null)
{
return false;
}
else
{
Excel.Workbook xlBook = excel.Workbooks.Add(true);
Excel.Worksheet xlSheet = (Excel.Worksheet)xlBook.Worksheets[1];
int rows = data.GetLength(0);//行
int cols = data.GetLength(1);//列
//导入数据
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
if (data[i,j]!=null )
{
excel.Cells[i + 1, j + 1] = data[i, j].ToString().Trim();
}
}
}
try
{
xlBook.Saved = true;
xlBook.SaveCopyAs(xlsSaveFileName);
return true;
}
catch
{
return false;
}
finally
{
excel.Quit();
excel = null;
GC.Collect();
}
}
}
/// <summary>
/// 将二维交错数组数组数据导入到Excel中
/// </summary>
/// <param name="data">数据</param>
/// <param name="xlsSaveFileName">保存的文件名(路径)</param>
/// <returns>是否保存成功</returns>
public static bool ConvertDataToExcel<T>(T[][] data,string xlsSaveFileName)
{
//在做这些前,将Excl添加到引用中来!!
Excel.Application excel = new Excel.Application();
//如果系统是Excl2007,添加的引用会不一样,代码如下:Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
if (excel == null)
{
return false;
}
else
{
Excel.Workbook xlBook = excel.Workbooks.Add(true);
Excel.Worksheet xlSheet = (Excel.Worksheet)xlBook.Worksheets[1];
int rows = data.GetLength(0);//行
//int cols = data.GetLength(1);//列
//导入数据
for (int i = 0; i < rows; i++)
{
for (int j = 0; j <data [i ].Length ; j++)
{
if (data[i][j]!=null )
{
excel.Cells[i + 1, j + 1] = data[i][ j].ToString().Trim();
}
}
}
try
{
xlBook.Saved = true;
xlBook.SaveCopyAs(xlsSaveFileName);
return true;
}
catch
{
return false;
}
finally
{
excel.Quit();
excel = null;
GC.Collect();
}
}
}
听说有更好的Excel读写组件NPOI,回去试一下看看。。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架