Excel 시트에서 SQL 스크립트를 생성하므로 모든 셀의 형식을 알아야합니다. Excel 셀 전송
따라서 난 후에 텍스트 상자의 결과와 다음 코드의 세포 형태를 얻으려고 노력using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using Excel = Microsoft.Office.Interop.Excel;
using System.Windows.Forms;
namespace Export
{
internal class ExcelWorker
{
Excel.Application _xlApp = new Excel.Application();
Excel.Workbook _xlWorkBook;
Excel.Range _range;
object misValue = System.Reflection.Missing.Value;
private void Show(string value) => MessageBox.Show(value);
internal void ReadExcelFile(string path, string cell)
{
try
{
_xlWorkBook = OpenBook(_xlApp, path, false, true, false);
Excel.Worksheet sheet = _xlWorkBook.Sheets["Sheet1"] as Excel.Worksheet;
Show(string.Format("Cell {0} \n\n Cell Number Format {1}", cell, sheet.get_Range(cell).NumberFormat));
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
private static Excel.Workbook OpenBook(Excel.Application excelInstance, string fileName, bool readOnly, bool editable,
bool updateLinks)
{
Excel.Workbook book = excelInstance.Workbooks.Open(
fileName, updateLinks, readOnly,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, editable, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
return book;
}
}
}
가 시트 엑셀 :
지금 내가 그쪽으로 잘 모르겠어요 t는 올바른 SQL 형식으로 Excel 셀 값을 캐스팅하는 "올바른"형식을 얻는 것이거나 내가 모르는 더 나은 솔루션이있는 경우에만 발생합니다.
각 셀의 형식을 얻는 더 좋은 방법이 있습니까? 아니면이 같은 열거 형 또는 뭔가를 만들고 각 가능한 셀 형식을 매핑해야합니까?
실제로 숫자 서식은 셀 유형이 아닙니다. 뭐하고 싶어? Excel 시트에서 오는 데이터베이스에만 데이터를 씁니 까? –
글쎄,이 값들을 SqlTypes에 _cast_ 할 수는 없겠지만, 그것들로부터 SqlType을 _infer_ 할 수는 있습니다. – stuartd
@MarcelTheis : 아마도 A2 셀이 날짜 또는 datetime 인 경우 SQL 테이블의 이미 존재하는 열이 같은 형식인지 확인하고 해당 스크립트가 삽입 될 때 해당 스크립트를 삽입해야합니다. –