Предполагается, что это программа, которая считывает из 2 файлов excel, сохраняет данные в двух массивах и позволяет пользователям выполнять поиск через текстовое поле для определенного zip/place и на вкладке в поле поиска, чтобы получить подсказку с местом/с, которые связаны с ним через lable или наоборот.Программа, которая считывает из 2 файлов excel и позволяет пользователям искать соответствующие поля из обоих файлов.
Моя проблема заключается в том, что для красных файлов требуется слишком много времени. Я открыт для предложений о том, как сократить время чтения.
using System;
using System.Collections.Generic;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel ;
namespace ExcelDateilesen_1
{
public partial class Form1 : Form
{
string[] zip = new string[3000];
string[] place = new string[3000];
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Excel.Application objExcel = new Excel.Application();
Excel.Workbook objWorkbook = objExcel.Workbooks.Open
(@"C:\Users\ggr\Documents\plz.xlsx");
Excel.Worksheet objWorksheet = objWorkbook.Worksheets["Tabelle1"];
Excel.Range objCell;
int i = 1;
do
{
objCell = objWorksheet.Cells[i, 1];
if (objCell.Value == null) break;
if (objCell.Value is string)
{
zip[i - 1] = objCell.Value;
}
i++;
} while (true);
objWorkbook.Close();
objExcel.Quit();
Excel.Application objExcel1 = new Excel.Application();
Excel.Workbook objWorkbook1 = objExcel1.Workbooks.Open
(@"C:\Users\ggr\Documents\ort.xlsx");
Excel.Worksheet objWorksheet1 = objWorkbook1.Worksheets["Tabelle1"];
Excel.Range objCell1;
int j = 1;
do
{
objCell1 = objWorksheet1.Cells[j, 1];
if (objCell1.Value == null) break;
if (objCell1.Value is string)
{
place[j - 1] = objCell1.Value;
}
j++;
} while (true);
objWorkbook1.Close();
objExcel1.Quit();
}
}
}
Same Problem - он не получит количество непустых ячеек. Я явно определял количество строк, как в листе Excel (не как в моем коде выше - ячейки 2652), а затем путем итерации через ячейки. Массив присваивал эти значения адекватной предопределенной строке Array с ячейками диапазона номера - 1 из-за 0-го элемента (поэтому [i-1] и [j-1] начинаются с 0-го элемента массива). Моя логика заключалась в том, что с использованием этого подхода не будет никаких нулевых значений, но я продолжал получать исключения, и система просила меня сообщениями, что не может быть никаких «нулевых» значений. –
Я не уверен, что я понимаю ваш комментарий. Я думал, что ваша проблема: _My проблема в том, что для файлов требуется слишком много времени. Если в вашем диапазоне есть пустые ячейки, и вы хотите их игнорировать или нет, я не понимаю, чего вы хотите достичь. Я просто пытался обратиться к более быстрому чтению файлов в качестве последней строки до того, как вы укажете состояния кода. Что вы хотите прочитать в массивах? – JohnG
Вы код как есть, он перестанет читать файл, как только он достигнет нулевой ячейки. Поэтому мне любопытно, как ваш массив может получить нулевое значение. – JohnG