새 Excel 파일이 열리고 데이터가 입력됩니다. 외부 C# 응용 프로그램이 Excel 프로세스에 연결되어 데이터를 가져올 수 있습니까? 또한 Excel 파일은 절대로 파일에 저장되지 않습니다.Excel에서 메모리를 통해 데이터를 가져올 수 있습니까?
이 작업을 수행하기 어려울뿐만 아니라이를 달성하는 방법에 대한 올바른 방향을 제시해 줄 수 있습니까?
새 Excel 파일이 열리고 데이터가 입력됩니다. 외부 C# 응용 프로그램이 Excel 프로세스에 연결되어 데이터를 가져올 수 있습니까? 또한 Excel 파일은 절대로 파일에 저장되지 않습니다.Excel에서 메모리를 통해 데이터를 가져올 수 있습니까?
이 작업을 수행하기 어려울뿐만 아니라이를 달성하는 방법에 대한 올바른 방향을 제시해 줄 수 있습니까?
"button1"이라는 단추가 추가 된 Windows 양식 응용 프로그램의 코드 뒤에이 코드를 추가하기 만하면됩니다. 이 샘플 코드는 Excel 파일의 셀을 반복하고 각 셀의 내용을 메시지 상자에 표시합니다. 물론 "Microsoft.Office.Interop.Excel"에 대한 프로젝트 참조가 필요합니다.
실제로 Excel 파일을 만드는 것을 잊지 마십시오.이 예제에서는이 경로 "C : \ ExcelData \ DataToImp.xlsx"를 사용했습니다.
using Excel = Microsoft.Office.Interop.Excel;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
Excel.Range range;
string str;
int rCnt = 0;
int cCnt = 0;
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open("C:\\ExcelData\\DataToImp.xlsx", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
range = xlWorkSheet.UsedRange;
for (int rowIndex = 1; rowIndex <= range.Rows.Count; rowIndex++)
{
for (int columnIndex = 1; columnIndex <= range.Columns.Count; columnIndex++)
{
Excel.Range rangeTest = range.Cells[rowIndex, columnIndex] as Excel.Range;
if (rangeTest.MergeCells)// && rangeTest.Value2 == null)
{
//continue;
int columns = rangeTest.Columns.Count;
columnIndex += columns;
}
MessageBox.Show("m " + (string)rangeTest.Value2);
}
}
xlWorkBook.Close(true, null, null);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
}
private void releaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
MessageBox.Show("Unable to release the Object " + ex.ToString());
}
finally
{
GC.Collect();
}
}
이것은 나의 처음이었다. OP에 대한주의 사항은 아닙니다. 이미 열려있는 Excel을 가져 와서 이런 방식으로 "후크 인"할 수는 없으므로 프로그램을 먼저 실행해야합니다.이 프로그램은 Excel을 열고 그곳에서 모든 사람 유형을 읽을 수 있습니다 그걸로. – Quantic
그래, 그렇게하는 방법입니다. 또한 Excel에서 데이터를 수정 한 후 파일을 디스크에 "저장"해야합니다. – Clock
또한 Excel에서 응용 프로그램을 열 필요가 없습니다. 단지 파일을 읽습니다. 이 기능을 사용하려면 Excel을 열 필요가 없습니다. – Clock
Excel에서 특정 파일의 메모리에 저장 한 내용을 읽는 C# 응용 프로그램이 필요하십니까? 그것이 가능하다면 통증과 같게 들립니다. –
아니요, 대부분의 OS의 응용 프로그램 보안 모델은이를 허용하지 않습니다! – Illuminati
http://stackoverflow.com/questions/3746409/how-to-read-some-data-from-a-windows-application-memory maybe helpful – Hozikimaru