在excel文档的特定工作表中创建新行VS C#
我知道这个问题可能会在另一个被问到的问题中得到解决,这并不是因为我花了2天时间尝试了所有这些问题。 让我们开始主题: -我有一个用Visual Studio Express 2017制作的桌面应用程序,使用C#代码。 -我将3个变量存储在一个包含多张工作表的excel文档中:加班小时数、加班天数、备注。 每一张纸都属于一个基于pc用户名的个人在excel文档的特定工作表中创建新行VS C#,c#,excel,visual-studio,C#,Excel,Visual Studio,我知道这个问题可能会在另一个被问到的问题中得到解决,这并不是因为我花了2天时间尝试了所有这些问题。 让我们开始主题: -我有一个用Visual Studio Express 2017制作的桌面应用程序,使用C#代码。 -我将3个变量存储在一个包含多张工作表的excel文档中:加班小时数、加班天数、备注。 每一张纸都属于一个基于pc用户名的个人 string datforOV = monthCalendar1.SelectionRange.Start.ToShortDateString();
string datforOV = monthCalendar1.SelectionRange.Start.ToShortDateString(); //data string
double hours = decimal.ToDouble(numericUpDown1.Value) + decimal.ToDouble(numericUpDown2.Value) * 0.1; //number of hours
string box = richTextBox1.Text; //content of text box
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Worksheet xlsht = new Microsoft.Office.Interop.Excel.Worksheet();
string path = @"Z\OLP.xlsx";
xlsht = xlApp.Application.Workbooks.Open(path).Worksheets[Environment.UserName];
我需要添加一个新行,在以用户名命名的工作表中,第一列填写小时数,第二列填写日期,下一列填写注释。
请帮助我,因为我开始失去理智。提前感谢。您可以尝试使用以下代码向命名的工作表excel中添加新行
using Excel = Microsoft.Office.Interop.Excel;
private void button1_Click(object sender, EventArgs e)
{
string datforOV = monthCalendar1.SelectionRange.Start.ToShortDateString(); //data string
double hours = decimal.ToDouble(numericUpDown1.Value) + decimal.ToDouble(numericUpDown2.Value) * 0.1; //number of hours
string box = richTextBox1.Text; //content of text box
Excel.Application xlApp = new Excel.Application();
string path = @"E:\1.xlsx";
Excel.Workbook workbook = xlApp.Application.Workbooks.Open(path);
Excel.Worksheet xlsht =workbook.Worksheets[Environment.UserName];
Excel.Range range = xlsht.UsedRange;
int rowcount = range.Rows.Count;
Excel.Range next= (Excel.Range)xlsht.Rows[rowcount+1];
next.Insert(); //Another method to add new row
xlsht.Cells[rowcount + 1, 1] = datforOV;
xlsht.Cells[rowcount + 1, 2] = hours;
xlsht.Cells[rowcount + 1, 3] = box;
workbook.Save();
workbook.Close();
xlApp.Quit();
MessageBox.Show("sucess");
}
结果:
此代码包含在“发送”按钮的功能中。非常感谢!让我摆脱困境。唯一的一件事。。仅当工作表为空时才工作,因此,如果我再次按下按钮添加新数据,将出现异常错误:“System.Runtime.InteropServices.ComeException:'Microsoft Excel无法插入新单元格,因为它会将非空单元格从工作表的末尾推出。这些单元格可能显示为空,但具有空值、某些格式或公式。请删除足够的行或列,以便为要插入的内容腾出空间,然后重试。”“@Akatori,根据我的测试,我重现了你的问题。因此,我修改了我的代码。现在我将其更改为另一种添加新行的方式。现在。你可以看看它是否对你有用。伙计,你真是一个幸运儿!它就像一个符咒。@Akatori,我很高兴听到你的问题已经解决了,你可以点击'✔' 将回答标记为回答。它也会帮助其他人解决类似的问题。你可以问一个新问题。