小弟现在做个数据导出Excel操作遇见个问题,就是一个Excel最多可以保存多少数据
现在我一个Excel 保存6W条数据
目前大概需要导出18W条数据 所以分3个Excel 这样没问题
敢问有高手可以解答 18W的数据可以用程序放入一个sheet里吗 以2G内存为基础
现在我一个Excel 保存6W条数据
目前大概需要导出18W条数据 所以分3个Excel 这样没问题
敢问有高手可以解答 18W的数据可以用程序放入一个sheet里吗 以2G内存为基础
解决方案 »
- 求:每隔30秒自动报警一次,直到有人停止操作!
- 字典和哈希表
- 批量删除 如何解决
- 为什么我的string s的replace ("aa",""bb)没有效果
- 关于ListView排序后,重新清空填充数据不断刷新屏幕的问题?
- word文件如何存入ACCESS的OLE对象字段中?
- WPF VirtualizingStackPanel 提问
- 不知道web控件的id和name怎么操作他们
- 那里可以下载source safe6.0c? 就是支持.net的source safe?
- datagrid的具体某一行某一列的值。
- 在winform的窗体上浏览图片,要求可以移动、缩放,不知道怎么实现了!
- 水晶报表动态加载图片问题
你可以放多个sheet
2007以上版本 104 8576
internal void AddDataSource(Worksheet sheet, FeeCondition feeCondition)
{
sheet.Workbook.Worksheets.Add("数据区域"); //创建数据工作层
Worksheet xlsheet = sheet.Workbook.Worksheets["数据区域"]; //定位数据工作层
List<string> list = new List<string>();
list.Add(feeCondition.d_import);
list.Add(feeCondition.ind_import);
list.Add(feeCondition.d_export);
list.Add(feeCondition.ind_export);
Add_set_top(xlsheet);//添加表头
int row = 0;
foreach (string str in list)
{
gotable(book.Worksheets[book.Worksheets.Count - 1], ref row, str);
} } /// <summary>
/// 新建sheet时添加表头
/// </summary>
/// <param name="xlsheet"></param> internal void Add_set_top(Worksheet xlsheet)
{
FeeCondition feeCondition = new FeeCondition(0, 0, 0);
DataTable table = DBAdapter.OradsDBHelper.GetDataTable(feeCondition.d_import);
for (int i = 0; i < table.Columns.Count; i++)//添加数据区域表头
{
xlsheet.Cells.SetColumnWidth(i, 15);//设定数据每列列宽
xlsheet.Cells[1, i + 1].PutValue(table.Columns[i].Caption);
SetTableCell(xlsheet.Cells[1, i + 1]);//设定表头格式
}
}
internal void gotable(Worksheet xlsheet, ref int row, string sql)
{
Add_set_body(book.Worksheets[book.Worksheets.Count - 1], ref row, DBAdapter.OradsDBHelper.GetDataTable(sql));
} internal void Add_set_body(Worksheet xlsheet, ref int row, DataTable table)
{
for (int i = 0; i < table.Rows.Count; i++) //添加数据区域表体
{
DataRow bodyrow = table.Rows[i];
for (int j = 0; j < table.Columns.Count; j++)
{
xlsheet.Cells[row + 2, j + 1].PutValue(bodyrow[j]);
}
row++;
if (row == 45000)
{
ResetSheet(ref xlsheet);
row = 0;
}
} }
/// <summary>
/// 当sheet数据行数超过65000时,重新添加sheet
/// </summary>
/// <param name="xlsheet"></param>
internal void ResetSheet(ref Worksheet xlsheet)
{
//string path = Application.StartupPath + "\\temp.xls";
//book.Save(path);
//book = null;
//GC.Collect();
//book = new Workbook();
//book.Open(path);
book.Worksheets.Add();//添加sheet
xlsheet = book.Worksheets[book.Worksheets.Count - 1];//定位新sheet
Add_set_top(xlsheet);//设置新sheet表头
}