高分求 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))
希望有成功的贴上代码