操作excel文件怎么在末尾追加?
private void ExportToExcel(string FileName)
{
if (FileName.IndexOf(".") <= 0)
{
FileName = FileName + ".xls";
}
else
{
string[] str = FileName.Split('.');
if (str.Length > 2)
{
FileName = str[0] + str[str.Length - 1];
}
}
Excel.Application app;
try
{
app = new Excel.Application();
}
catch
{
ClsCommFuncs.Alert("没有安装Excel程序或者安装错误");
return;
}
app.Workbooks.Add(true);
app.Visible = false;
Excel.Workbooks books = (Excel.Workbooks)app.Workbooks;
Excel.Workbook book = (Excel.Workbook)books.Add(Type.Missing);
int iget = 1;
int dwindex = 0;
//写头
if (panelHide1.Visible == true)
{
foreach (DataGridViewColumn datcol in dgvLog.Columns)
{
app.Cells[iget, dwindex + 1] = datcol.HeaderText;
dwindex++;
}
}
else
{
app.Cells[iget, 1] = dgvLog.Columns[0].HeaderText;
app.Cells[iget, 2] = dgvLog.Columns[1].HeaderText;
app.Cells[iget, 3] = dgvLog.Columns[2].HeaderText;
app.Cells[iget, 4] = dgvLog.Columns[5].HeaderText;
}
//写内容
int nIndex = 0;
foreach (TLogData t in m_tLogDataList)
{
iget++;
app.Cells[iget, 1] = (++nIndex).ToString();
app.Cells[iget, 2] = t.GetTime();
app.Cells[iget, 3] = t.GetLogType();
if (panelHide1.Visible == true)
{
app.Cells[iget, 4] = t.GetLogCategory();
app.Cells[iget, 5] = t.GetUserName();
app.Cells[iget, 6] = t.GetLogDecs();
}
else
{
app.Cells[iget, 4] = t.GetLogDecs();
}
}
app.Cells.EntireColumn.AutoFit();
try
{
book.SaveAs(FileName, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlExclusive,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
}
catch
{
ClsCommFuncs.Alert("导出失败,确认文件没有打开或Excel安装成功");
}
book.Close(false, Type.Missing, Type.Missing);
books.Close();
app.Quit();
GC.Collect();
}
//写内容
int nIndex = 0;
foreach (TLogData t in m_tLogDataList)
{
iget++;
app.Cells[iget, 1] = (++nIndex).ToString();
app.Cells[iget, 2] = t.GetTime();
app.Cells[iget, 3] = t.GetLogType();
if (panelHide1.Visible == true)
{
app.Cells[iget, 4] = t.GetLogCategory();
app.Cells[iget, 5] = t.GetUserName();
app.Cells[iget, 6] = t.GetLogDecs();
}
else
{
app.Cells[iget, 4] = t.GetLogDecs();
}
}
全部数据变成DataTable.追加完后.再变成Xls
[解决办法]