100 ,100,100??????????????? c# 2维数组写入excel

j45kp 2008-12-16 10:34:46
c# 2维数组写入excel
int rowCount = ds.Tables[0].Rows.Count + 1; //DataTable行数+GirdHead
int colCount = ds.Tables[0].Columns.Count; //DataTable列数

//利用二维数组批量写入
string[,] arr = new string[rowCount, colCount];

for (int j = 0; j < rowCount; j++)
{
for (int k = 0; k < colCount; k++)
{
if (j == 0)
{
arr[j, k] = table.Columns[k].Caption;

}
else
{
arr[j, k] = table.Rows[j - 1][k].ToString();
}
}
}
range = app.get_Range(app.Cells[1, 1], app.Cells[rowCount, colCount]);


range.Value2 = arr;

可是就是抱HRESULT: 0x800A03EC 因为有的单元格的字符有1000多,怎么解决,现在要将30w数据导入excel分页,只有采用数组快速,现请大仙帮忙????
...全文
272 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaozhijun0207 2008-12-19
  • 打赏
  • 举报
回复
传说每天回帖即可获得 10 分可用分!
cpio 2008-12-17
  • 打赏
  • 举报
回复
我试了一下,就是长度的问题,短点就可以了

看看通过OLEDB方式连接,然后写入行不行。
RexZheng 2008-12-16
  • 打赏
  • 举报
回复
行数限制是65536
手动分页,每65535行做一页
cpio 2008-12-16
  • 打赏
  • 举报
回复
const int rowCount = 5;
const int colCount = 5;
string[,] arr = new string[rowCount, colCount];
for (int i = 0; i < rowCount; i++)
{
for (int j = 0; j < colCount; j++)
{
arr[i, j] = i.ToString() + "," + j.ToString();
}
}

ApplicationClass excelApp = new ApplicationClass();
excelApp.Workbooks.Add(Missing.Value);
Worksheet ws = excelApp.Workbooks[1].Worksheets[1] as Worksheet;
Range range = ws.get_Range(ws.Cells[1, 1], ws.Cells[rowCount, colCount]);
range.Value2 = arr;
excelApp.Visible = true;

你看这段代码可不可以,我这儿是可以的
j45kp 2008-12-16
  • 打赏
  • 举报
回复
只有17列
cpio 2008-12-16
  • 打赏
  • 举报
回复
Exce有行列限制,好像最多255列
wuyq11 2008-12-16
  • 打赏
  • 举报
回复
不行,写单元格
参考
http://www.cnblogs.com/yangzk/archive/2007/10/21/931826.html
gtiroy 2008-12-16
  • 打赏
  • 举报
回复
excel中没有0行0列。都是从1开始的。
wuyq11 2008-12-16
  • 打赏
  • 举报
回复
public void WriteData(string[,] data, int startRow, int startColumn)
{
int rowNumber = data.GetLength(0);
int columnNumber = data.GetLength(1);

for (int i = 0; i < rowNumber; i++)
{
for (int j = 0; j < columnNumber; j++)
{
//在Excel中,如果某单元格以单引号“'”开头,表示该单元格为纯文本 myExcel.Cells[startRow + i, startColumn + j] = "'" + data[i, j];
}
}
}
cpio 2008-12-16
  • 打赏
  • 举报
回复
我把上面的RowCount改为60000,也没有出现问题。

楼主试试看

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧