0

我正在用 c# 将数据写入 Excel 工作表。

我编写了以下代码。

        string excel_filename = @"C:\Users\Downloads\bookmain.xlsx";
        Excel.Application excel = new Excel.Application();
        excel.Visible = true;
        Excel.Workbook wb = excel.Workbooks.Open(excel_filename);
        Excel.Worksheet sh = wb.Sheets.Add(); 
        sh.Name = "TestSheet"; 
        sh.Cells[1, "A"].Value2 = "SNO";
        sh.Cells[1, "B"].Value2 = "Name";
        sh.Cells[1, "C"].Value2 = "ID";
        for (int i = 0; i < 2; i++)
        {
            sh.Cells[i+2, "A"].Value2 = "1";
            sh.Cells[i+2, "B"].Value2 = "A";
            sh.Cells[i+2, "C"].Value2 = "1122"; 
        }


        wb.Save();
        excel.Quit();             

这里我给出了已经存在且为空的excel文件的路径。

如何更改此代码,当我给出路径时它应该自动检查,如果它存在它必须创建否则不需要创建。

即使我的代码也需要检查工作表名称,它存在我将直接编辑它,否则我需要创建一个新工作表。

任何人都可以分享他们的回应。

谢谢你。

4

1 回答 1

4

检查文件是否存在:

if(!File.Exists(excel_filename)) 
{
  //if not exists then only create:- 
}

对于检查工作表,您可以这样做:

foreach (Sheet sheet in workbook.Sheets)
{
    if (sheet.Name.equals("Test"))
    {
        //do something
    }
}

更新: 这是它的工作原理:

创建 Excel 对象

Excel.Application excel = new Excel.Application();

使 Excel 可见

excel.visible = true

添加工作表

Excel.Worksheet sh = wb.Sheets.Add();

另存为

  wb .SaveAs( @"C:\Users\Downloads\bookmain.xlsx",
            Excel.XlFileFormat.xlXMLSpreadsheet, missing, missing,
            false, false, Excel.XlSaveAsAccessMode.xlNoChange,
            missing, missing, missing, missing, missing);
于 2012-04-11T09:09:18.917 回答