如果可以 COM 入 excel,则可以通过 COM 直接从 excel 中查询,或者创建一个数据数组并将其直接放入与数组大小相等的范围内。尽管 excel 对小型 COM 调用不是很好,但它在一些大型 COM 调用中效果很好:)
DataSet ds = new DataSet();
da.Fill(ds);
int width = ds.Tables[0].Columns.Count;
int height = ds.Tables[0].Rows.Count;
object[,] retList = new object[height, width];
for (int i = 0; i < height; i++)
{
DataRow r = ds.Tables[0].Rows[i];
for (int j = 0; j < width; j++)
retList[i, j] = r.ItemArray[j];
}
Excel.Range range = mWs.get_Range(destination, mWs.Cells[destination.Row + height - 1, destination.Column + width - 1]);
range.set_Value(Missing.Value, retList);
System.Runtime.InteropServices.Marshal.ReleaseComObject(range);
range = null;
这是在一次 COM 调用中获取数据并将其作为数组插入 excel 的示例