PDA

View Full Version : ایمپورت اکسل در C#



mehdi4467
جمعه 12 مهر 1398, 12:45 عصر
سلام من کد زیر را برای خواندن جدول اکسل در C# نوشته ام.
ولی مشکلی که دارم اطلاعات که بضورت ساعت ذخبره شده را به صورت double بر می گرداند یعنی مثلا 7:43:48 PM زا 0.834344444 بر می گرداند.
لطفا راهنمایی کنید.
ممنون

Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
Excel.Range range;


int rCnt;
int cCnt;
int rw = 30;
int cl = 2;




xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(@"G:\20010930.xlsx", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindow s, "\t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1) ;


range = xlWorkSheet.UsedRange;
rw = range.Rows.Count;
cl = range.Columns.Count;


for (rCnt = 2; rCnt <= rw; rCnt++)
{
for (cCnt = 1; cCnt <= cl; cCnt++)
{
var str = (range.Cells[rCnt, cCnt] as Excel.Range).Value2;
MessageBox.Show(str.ToString());
}
}

MMRavari
جمعه 12 مهر 1398, 21:44 عصر
در اصل اکسل ساعت رو بصورت دابل نگه میداره و برای نمایش اون رو به صورت ساعت نشون میده
اگر اون عدد رو در 24 ضرب کنی مقدار عدد صحیح برابر ساعت میشه
اگر ساعت و کسر کنی و باقیمانده رو در 60 ضرب کنی عدد صحیح دقیقه میشه
اگر دقیقه رو در عدد 60 ضرب کنی و قسمت صحیح اون رو برداری میشه ثانیه

Snoopboy
یک شنبه 14 مهر 1398, 10:07 صبح
از تابع زیر استفاده کن

TimeSpan result = TimeSpan.Parse("00:00");

یا

DateTime.ParseExact(range["C1"].ToString(), "HH:mm", null)


یا فیلد زمان رو اکسل General کن و اون رو به صورت رشته بگیر