#c# #excel #text
#c# #excel #текст
Вопрос:
могу ли я читать файл Excel по столбцам по столбцам? Я хотел бы прочитать первый столбец файла xlsx, и когда я доберусь до пустой ячейки, я загружу другой столбец.Я пробовал то, что есть в коде, но это, вероятно, полная бессмыслица. В моем коде есть три ошибки: Ошибка CS0161 ‘Class1.ReadCell (int, int)’: не все пути кода возвращают значение
Возможно, объяснения достаточно.
Я попробовал это:
Form1:
using System;
using System.IO;
using System.Windows.Forms;
namespace WindowsFormsApp2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
OpenFile();
}
public void OpenFile()
{
Class1 excel = new Class1(textBox1.Text,1) ;
string path = textBox1.Text ".txt";
TextWriter tw = new StreamWriter(path, true);
tw.Write(excel.ReadCell(0, 0));
tw.Close();
}
}
}
Class1:
using Microsoft.Office.Interop.Excel;
using _Excel = Microsoft.Office.Interop.Excel;
namespace WindowsFormsApp2
{
class Class1
{
string path = "";
_Application excel = new _Excel.Application();
Workbook wb;
Worksheet ws;
private object excelWorksheet;
public Class1(string path, int Sheet)
{
this.path = path;
wb = excel.Workbooks.Open(path);
ws = (Worksheet)wb.Worksheets[Sheet];
}
public string ReadCell(int i, int j)
{
for ( i = 0; i < 20; i )
{
for ( j = 1; j < 100; j )
{
int first = 65 i;
string coordinates = ((char)first).ToString() j;
if (ws.Range[coordinates].Value == "Z_KomSilnice_L (24200)/7 ")
{
return ws.Range[coordinates].Value;
}
else
return "";
}
}
}
}
}
Комментарии:
1. Ваши два
return[i, j];
, вероятно, должны бытьreturn ws.Cells[i,j]
похожи на ваш третий пример.2. Однако вы не можете просто возвращать ячейки: если вам нужны строки, вам нужно будет возвращать значение при вычислении в строке CellValue. Также есть . ValueType (я думаю), что, вероятно, лучший способ проверить, пуста ячейка или нет.
3. Взаимодействие не является хорошим выбором, если вы просто хотите работать с файлами — это неудобно, иногда ненадежно, а также требует, чтобы на компьютере, на котором выполняется код, были установлены соответствующие зависимости Excel. Вместо этого существует множество (бесплатных) библиотек, которые могут напрямую взаимодействовать с форматом файла, не полагаясь на компоненты приложения Excel. например, ClosedXML, NPOI и другие. Ваша задача, вероятно, была бы проще, используя вместо этого эти библиотеки.
4. @Rup могу я спросить, как я могу этого добиться?
5. @ADyson есть какие-нибудь советы для полного новичка?