Csharp/C#教程:将锯齿状数组直接转换为2D数组而不迭代每个项目?分享


将锯齿状数组直接转换为2D数组而不迭代每个项目?

我正在尝试将DataTable保存到Excel工作表中..我的代码是这样的..

Excel.Range range = xlWorkSheet.get_Range("A2"); range = range.get_Resize(dtExcel.Rows.Count, dtExcel.Columns.Count); object[,] rng1 = new object[dtExcel.Rows.Count, dtExcel.Columns.Count]; 

Excel范围需要范围值作为数组[,]但我将DataTable作为锯齿数组[] []。

 object[][] rng2 = dtExcel.AsEnumerable().Select(x => x.ItemArray).ToArray(); 

是否有任何内置函数可以将锯齿状数组[] []直接转换为2D数组[] []? 通过Excel迭代,DataTable和分配对于批量数据来说似乎更慢。

此外,我不想设置使用DSN查询excel ..我选择了excel存储以避免配置任何数据库..:PI在此处找到了将数据写入excel的方法的详细说明.. http:// support。 microsoft.com/kb/306023

最后我为此使用了NPOI库 。 它非常简单而且免费。 将DataTable转换为excel的代码如下。

上述就是C#学习教程:将锯齿状数组直接转换为2D数组而不迭代每个项目?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 HSSFWorkbook hssfworkbook = new HSSFWorkbook(); foreach (DataTable dt in DataSource.Tables) { ISheet sheet1 = hssfworkbook.CreateSheet(dt.TableName); //Set column titles IRow headRow = sheet1.CreateRow(0); for (int colNum = 0; colNum < dt.Columns.Count; colNum++) { ICell cell = headRow.CreateCell(colNum); cell.SetCellValue(dt.Columns[colNum].ColumnName); } //Set values in cells for (int rowNum = 1; rowNum <= dt.Rows.Count; rowNum++) { IRow row = sheet1.CreateRow(rowNum); for (int colNum = 0; colNum < dt.Columns.Count; colNum++) { ICell cell = row.CreateCell(colNum); cell.SetCellValue(dt.Rows[rowNum - 1][colNum].ToString()); } } // Resize column width to show all data for (int colNum = 0; colNum < dt.Columns.Count; colNum++) { sheet1.AutoSizeColumn(colNum); } } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/954920.html

(0)
上一篇 2021年11月20日
下一篇 2021年11月20日

精彩推荐