高分求 excel分页代码???

j45kp 2008-12-12 10:06:45
public void doExport(DataSet ds, string strExcelFileName, string value)
{
Excel.Worksheet workSheet;
string sheetPrefixName = "页";
object missing = Missing.Value;

Excel.Application excel = new Excel.Application();
DateTime beforeTime = DateTime.Now;

int rowIndex = 1;
int colIndex = 0;

excel.Application.Workbooks.Add(true);
DateTime afterTime = DateTime.Now;

System.Data.DataTable table = ds.Tables[0];
int rowCount = table.Rows.Count; //行数
int colCount = table.Columns.Count;//列数
int sheetCount = this.GetSheetCount(rowCount);
Excel.Workbook workBook = excel.Workbooks.Add(Type.Missing);

//得到WorkSheet对象
workSheet = (Excel.Worksheet)workBook.Sheets.get_Item(1);
//复制sheetCount-1个WorkSheet对象
for (int i = 1; i < sheetCount; i++)
{
((Excel.Worksheet)workBook.Worksheets.get_Item(i)).Copy(missing, workBook.Worksheets[i]);


}
//向有多个WorkSheet对象分页写数据
for (int i = 1; i <= sheetCount; i++)
{
int startRow = (i - 1) * 10000; //记录起始行索引
int endRow = i * 10000; //记录结束行索引
//若是最后一个WorkSheet,那么记录结束行索引为源DataTable行数
if (i == sheetCount)
{
endRow = rowCount;
}
//获取要写入数据的WorkSheet对象,并重命名
workSheet = (Excel.Worksheet)workBook.Worksheets.get_Item(i);
workSheet.Name = sheetPrefixName + "-" + i.ToString();
Excel.Range range = excel.get_Range(excel.Cells[1, 1], excel.Cells[1, 17]);
range.Font.Size = 12;

workSheet.Rows.RowHeight = 30;
workSheet.Columns.ColumnWidth = 20;
int row = endRow - startRow;
for (int j = 0; j < row; j++)
{
for (int k = 0; k < colCount; k++)
{
workSheet.Cells[1 + j, 1 + k] = table.Rows[startRow + j][k].ToString();
}

}
}

报错 存放裝置空間不足,無法完成此操作Exception from HRESULT: 0x8007000E (E_OUTOFMEMORY))
希望有成功的贴上代码
...全文
99 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2008-12-12
  • 打赏
  • 举报
回复
参考
http://www.cnblogs.com/lingyun_k/archive/2008/10/07/191740.html
http://www.cnblogs.com/hades/articles/436416.html
llsen 2008-12-12
  • 打赏
  • 举报
回复
http://www.cnblogs.com/peaceli/archive/2008/04/13/1151520.html

操作excel

excel分页的话
是不是就是存入不同的sheet
那你用添加sheet,存入新sheet中就好了
j45kp 2008-12-12
  • 打赏
  • 举报
回复
现在使用分页太耗内存,决定当数据量超过65535时,就重新生成一个新的excel,所以现在要循环生成excel的代码,超过65535就重新生成,希望大家帮忙想想

高分送上

111,130

社区成员

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

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

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