如何将文件中的数据分为两个不同的列

时间:2019-01-29 07:24:35

标签: c# linq xaml io wpfdatagrid

所以我正在制作一个出勤应用程序。我将获得两个文件。

首先excel文件如下所示

Schedule File

这是实际的出勤记录

Actual Attendance Logs

对于考勤文件,0表示登录,1表示注销

当我上传考勤文件时,它看起来像这样 DataGrid1

到目前为止,我已经尝试在一个时间跨度内匹配两列,但这给我一个错误

Error Message

所以这是我现在已经做的 Current Table

我再缺少一列,我需要计算看起来像这样的指标 Expected Output

这是我当前的DataGrid XAML代码

<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto">
                    <StackPanel Orientation="Vertical" Margin="0,0,0,0">

                        <DataGrid
                            x:Name="dgvAttendance"
                            Margin="0,20"
                            CanUserSortColumns="True"
                            CanUserAddRows="False" SelectedIndex="0" AlternationCount="2" AutoGenerateColumns="True" SelectionMode="Single" EnableColumnVirtualization="True" IsReadOnly="True" ScrollViewer.CanContentScroll="False" CanUserReorderColumns="False" CanUserResizeColumns="False" HeadersVisibility="All" CanUserResizeRows="False" PreviewMouseWheel="DgvAttendance_PreviewMouseWheel" UseLayoutRounding="False" >
                        </DataGrid>

                        <Button
                            x:Name="btnExportExcel"
                            Style="{StaticResource MaterialDesignRaisedDarkButton}"
                            Width="110"
                            ToolTip="Resource name: MaterialDesignRaisedLightDarkButton" Margin="15,10" Content="Export File" HorizontalAlignment="Right" Click="BtnExportExcel_Click"  />
                    </StackPanel>
                    <!-- Stack for Datagrid Ends Here -->
                    </ScrollViewer>

这是我当前用于填充DataGrid的代码

public void Main()
        {

            actuals = NewActual(@"C:\Users\IT\Desktop\Sample\SampleActual.dat");
            emps = GetEmp();

            var final = (from t1 in actuals
                         join t2 in emps on t1.ID equals t2.ID
                         where t1.ID == t2.ID
                         orderby t2.ID
                         select new
                         {
                             t1.ID,
                             t2.In,
                             t1.ActualLog,
                             t2.Out
                         });

            dgvAttendance.ItemsSource = final.ToList();
        }

任何想法或帮助将不胜感激。谢谢

Edit:我想做的是使用0或1的日志状态对考勤日志中的数据进行排序,如果为零,则该日志的日志状态应转到“实际输入”列,但如果为1,则应为转到实际输出列

0 个答案:

没有答案