我在C#中创建一个简单的应用程序,我将数据保存在已创建的Excel工作表中。要做到这一点,首先我要读取行中的数据,如果该行为空,则意味着我必须将新数据保存在其中。我有一张excel表,上面有以下细节:
S.No | Name | Email ID | Phone Number
所以我先检查哪一个是S.No
。假设它是4,这意味着我必须使用S.No = 5
在第6行输入数据,因为标题占用了一行。
为此,我首先打开excel文件,然后扫描行。我能够扫描它,但是当我尝试保存它时,它用新的文件替换当前文件,旧数据丢失。这就是我在做的事情:
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open("<filepath>", 0, true, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
Excel._Worksheet xlWorksheet = (Excel._Worksheet)xlWorkbook.Sheets[1];
Excel.Range xlRange = xlWorksheet.UsedRange;
int rowCount = xlRange.Rows.Count;
int colCount = xlRange.Columns.Count;
for(parse = 2; parse <= 100; parse++)
{
if (xlRange.Cells[parse, 1].Value2 != null)
{
Sno++;
}
else
{
break;
}
}
//Sno contains the recent serial number
在此之后我只是填写数据并保存文件:
xlWorksheet.Cells[Sno + 2, 1] = Sno + 1;
xlWorksheet.Cells[Sno + 2, 2] = NameTextBox.Text;
xlWorksheet.Cells[Sno + 2, 3] = EmailIdTextBox.Text;
xlWorksheet.Cells[Sno + 2, 4] = PhoneNumberTextBox.Text;
xlWorksheet.SaveAs("<filepath>");
xlWorkbook.Close();
xlApp.Quit();
但是在保存时它表示文件已经退出,因为我正在进行SaveAs
。有没有办法只保存文件或任何其他替代方案。
请帮忙。