你好, 我试图从文本输入数据到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);
答案 0 :(得分:0)
我不确定你是如何插入新数据的,但是如果你正在写同一个工作表并写入相同的单元格,那么它总会覆盖它。
解决方案: 添加新工作表,或更改您写入的范围,以避免数据丢失。
编辑: 在您添加工作表的代码中,您选择活动工作表,这就是为什么它总是写入同一工作表,您必须选择这样的新工作表:
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";
答案 1 :(得分:0)
使用下面的代码: 阅读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
);
}