C#更新CSV单元格

时间:2018-07-23 11:34:02

标签: c# button combobox

我刚刚开始编写代码,因此感谢所有帮助,我到处搜索并且找不到任何方法,我需要使用按钮(用于更新)更新CSV文件中的特定单元格,预先感谢一个组合框(在这种情况下,其值具有一些名称):)

3 个答案:

答案 0 :(得分:1)

不需要interops或其他s $!^&...它是.csv,本质上是文本文件,其中的数据由分号和换行符分隔(如果不是特殊格式的话)。 ..

首先,如@WynDiesel所说,尝试将.csv中的数据更改为某个硬编码值。假设您需要更改单元格[X, Y](第X列,第Y行)中的数据。最简单(尽管不是最有效的方法)是使用.csv读取StreamReader文件的所有行或使用其他方法并将这些行保存到我们将称为的字符串数组中rowsArray。然后访问Y-th行,使用分号分隔符将其拆分,然后将结果保存到其他字符串数组(我们将此称为dataArray)。

string[] dataArray = string.Split(';', rowsArray[Y]);

然后更改该X-th的{​​{1}}值。

dataArray

在此之后,做

dataArray[X] = myNewValue;

现在,您只需要将所有数据写回到原始文件即可。

对于UI而言,只需对按钮使用rowsArray[Y] = string.Join(";", dataArray)`. 事件,获取OnClick的值,然后使用我们先前创建的函数将该值写入ComboBox文件。 / p>

答案 1 :(得分:0)

先忘记组合框/ UI。

您需要编写一段可以使用文件名的代码,读取该文件中的所有行,然后针对该文件中的特定行,将其分解为多个字段(按分号),然后重新构建将其与您想要的新值对齐,再次构建文件,然后再次写入。完成此操作后,您将开始围绕此构建UI。

开始将您的问题分解为较小的问题,并首先解决最小的问题。

答案 2 :(得分:0)

您只需要 Micorosft.Office.Interop.Excel.dll

private void button_Click(object sender, EventArgs e)
{
    var fileName = @"myexcel.xlsx";


    if (File.Exists(fileName))
    {
        try
        {
            var excelApp = new Excel.Application();
            var xlWorkBook = excelApp.Workbooks.Open(fileName);

            var xlWorkSheet = (Excel.Worksheet)excelApp.ActiveSheet;
            xlWorkSheet.Cells[1, "A"] = "Some thing";
            xlWorkSheet.Cells[1, "B"] = "Other thing";
            xlWorkSheet.SaveAs(fileName);
        }
        catch (Exception ex)
        {
            //some error handling;
        }
    }
}

您可以在此处阅读有关打开/写入/读取excel文件的更多信息:

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/interop/how-to-access-office-onterop-objects