【问题标题】:How to insert a result of split word into cells in Excel with C#如何使用 C# 将拆分单词的结果插入 Excel 中的单元格
【发布时间】:2019-10-08 12:46:13
【问题描述】:

我的任务是从文本文件中拆分一行,然后将拆分结果中的每个单词放入 Excel 单元格中。

我认为我做得对,但它总是给我一个例外。

var lines = File.ReadAllLines(textBox1.Text);
//baca line lalu split 
xlApp = new excel.Application();
xlWb = xlApp.Workbooks.Add();
xlWs = (excel.Worksheet)xlWb.Worksheets.get_Item(1);
string appPath = AppDomain.CurrentDomain.BaseDirectory;
for (int i = 0; i < lines.Length; i++)
{
    textsplit = lines[i].Split('@');
    for (int j = 0; j < textsplit.Length; j++)
    {
        //masukin ke cells
        xlWs.Cells[row, j + 1] = textsplit[j].ToString();
    }
    row++;
}
xlWb.SaveAs(appPath + "testing.xlsx", excel.XlFileFormat.xlOpenXMLWorkbook, missing, missing,
    false, false, excel.XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing, missing);
xlWb.Close();
closeExcel(xlApp); closeExcel(xlApp);

例外:

System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)

我不知道我做错了什么。当我尝试使用xlWs.Cells[1,1] = "a" 之类的硬代码插入单元格时,它工作得非常好。

【问题讨论】:

  • 您在哪一行得到错误? row 的值是多少?
  • @AbdelAzizAbdelLatef 行的值为 1 ,其错误在行 " xlWs.Cells[row, j + 1] = textsplit[j].ToString();"
  • 能否提供完整的错误日志?另外,控制面板>区域设置中的默认语言是什么?

标签: c# excel


【解决方案1】:

xlWs.Cells[row, j + 1] = textsplit[j].ToString();

我相信您收到此错误是因为 row 可能分配了不正确的值。可能为空?

尝试用第一个循环中的变量“i”替换行,它应该可以正常工作,正如我所期望的那样。

【讨论】:

  • 是的,在我尝试使用 try catch 后,数据值为 "============================ ==============================不能分配给单元格..这就是为什么我总是得到例外,谢谢你的答案
猜你喜欢
  • 1970-01-01
  • 2013-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多