将文本文件中的数据添加到excel工作表中并保存

本文关键字:工作 excel 保存 添加 文本 文件 数据 | 更新日期: 2023-09-27 18:22:31

你好,我正在尝试将文本中的数据输入到excel中,并将其保存在特定的工作表名称下。若只有一个工作表,它会起作用,但当我再次调用相同的代码时,它不会起作用,因为它会覆盖excel文件。我想知道是否可以从文本中复制数据并添加到工作表中。我使用了剪贴板方法,但它抛出了STA错误。我重复一次又一次地将文本文件复制到工作表中。这是我的代码:感谢帮助。

 a_Books.OpenText(reportloc + ".txt", Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, 1,
  Microsoft.Office.Interop.Excel.XlTextParsingType.xlDelimited, Microsoft.Office.Interop.Excel.XlTextQualifier.xlTextQualifierDoubleQuote,
  false, true, false, false, false, false, a_Opt, a_Opt, a_Opt, a_Opt, a_Opt);
  a_Book = a_Excel.Workbooks.Add(a_Opt);
                    a_Book.Sheets.Add();
                   Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)a_Book.ActiveSheet;
                   worksheet.Activate();
                    worksheet.Name = reportname;
                    FormatRaw_Data(worksheet);
                    a_Book.SaveAs(reportloc + ".xls", Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, a_Opt, a_Opt, a_Opt, a_Opt, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, a_Opt, a_Opt, a_Opt, a_Opt, a_Opt);

将文本文件中的数据添加到excel工作表中并保存

我不确定你是如何插入新数据的,但如果你正在向同一工作表和同一单元格写入,那么是的,它总是会覆盖它。

解决方案:添加新的工作表,或更改写入的区域,以避免数据丢失。

编辑:在你的代码中,当你添加工作表时,你选择了活动的工作表,这就是为什么它总是写入同一个工作表——你必须这样选择新的工作表:

a_Book.Sheets.Add();
Microsoft.Office.Interop.Excel.Worksheet worksheet = a_Book.Sheets[a_Book.Sheets.Count - 1];
worksheet .Name = "You can put a name";

使用以下代码:阅读excel。确保它存在:

a_Book = a_Excel.Workbooks.Open(reportloc + ".xls", 0, false, 5, "", "", false, XlPlatform.xlWindows, "'t", true, false, 0, true, false, false);

使用TexttoColumns属性:

for (int i = 0; i < range.Rows.Count; i++)
{
    range.Rows[i].Value = lines[i];
    range.Rows[i].TextToColumns(
        range.Rows[i],
        Microsoft.Office.Interop.Excel.XlTextParsingType.xlDelimited,
        Microsoft.Office.Interop.Excel.XlTextQualifier.xlTextQualifierNone,
        false,
        true
    );          
}